查看: 6081|回复: 48
收起左侧

[软件] 写个删除自身的批处理

[复制链接]
qdlfk2
发表于 2015-9-13 11:11:10 | 显示全部楼层 |阅读模式
自己做了个批处理,放在了自动启动文件夹,当第一次运行后会删除自身,如下:

echo  为使设置生效,将重启电脑,按任意键重启!
echo.
echo    取消或退出直接关闭窗口
pause >nul
SHUTDOWN /R /F /T 6
del %0

现在发现一个问题,如果出现提示后直接关闭窗口,删除自身的命令将不会执行,重启后还会运行此批处理,大侠们帮帮忙看看这地方应该怎么改改,谢谢
峪飞鹰
发表于 2015-9-13 11:54:54 | 显示全部楼层

  1. echo  为使设置生效,将重启电脑,按任意键重启!
  2. echo.
  3. echo    取消或退出直接关闭窗口
  4. pause >nul
  5. start "" "SHUTDOWN" /R /F /T 6
  6. del %0
复制代码

试试这样
qdlfk2
 楼主| 发表于 2015-9-14 09:17:55 | 显示全部楼层

不行,执行到PAUSE这行时,如果关闭窗口,下面的2行都不会执行
绯色鎏金
发表于 2015-9-14 09:33:22 | 显示全部楼层
本帖最后由 绯色鎏金 于 2015-9-14 13:00 编辑
qdlfk2 发表于 2015-9-14 09:17
不行,执行到PAUSE这行时,如果关闭窗口,下面的2行都不会执行


批处理是顺序执行的,退出了后面的自然就不执行了,

  1. @echo off
  2. echo @echo off>%temp%\1.bat
  3. echo del %0>>%temp%\1.bat
  4. echo echo  为使设置生效,将重启电脑,按任意键重启!>>%temp%\1.bat
  5. echo echo.>>%temp%\1.bat
  6. echo echo    取消或退出直接关闭窗口>>%temp%\1.bat
  7. echo pause>>%temp%\1.bat
  8. echo start shutdown /R /F /T 6 >>%temp%\1.bat
  9. echo del %%0 >>%temp%\1.bat
  10. start %temp%\1.bat
复制代码



qdlfk2
 楼主| 发表于 2015-9-14 09:39:41 | 显示全部楼层
绯色鎏金 发表于 2015-9-14 09:33
批处理是顺序执行的,退出了后面的自然就不执行了,不如写个判断吧,

能不能帮忙写下,谢谢
绯色鎏金
发表于 2015-9-14 09:40:57 | 显示全部楼层
本帖最后由 绯色鎏金 于 2015-9-14 10:02 编辑
qdlfk2 发表于 2015-9-14 09:39
能不能帮忙写下,谢谢


你试试看这个能不能达到要求吧

[mw_shl_code=css,true]@echo off
echo  为使设置生效,将重启电脑,按1键重启!
echo.
echo   按2取消或退出
set /p a=输入数字回车:
if "%a%"=="1" Goto systemrestart
if "%a%"=="2" Goto systemexit
:systemrestart
SHUTDOWN /R /F /T 6
del %0
:systemexit
del %0[/mw_shl_code]

注意不要直接敲回车,否则会顺序执行
qdlfk2
 楼主| 发表于 2015-9-14 10:57:42 | 显示全部楼层
绯色鎏金 发表于 2015-9-14 09:40
你试试看这个能不能达到要求吧

[mw_shl_code=css,true]@echo off

如果不做选择直接关闭窗口的话还是不能删除自身,下次启动还会在执行一遍这个批处理,
风之咩~
发表于 2015-9-14 11:11:56 | 显示全部楼层
start SHUTDOWN /R /F /T 6
del %0
绯色鎏金
发表于 2015-9-14 11:16:16 来自手机 | 显示全部楼层
qdlfk2 发表于 2015-9-14 10:57
如果不做选择直接关闭窗口的话还是不能删除自身,下次启动还会在执行一遍这个批处理,

一定要关闭窗口吗?关闭窗口就是结束了cmd进程,当然会强制终止运行后面的命令,自然不会删除自身了。

要是必须关闭窗口,那还不如在其他位置,写个批处理,内容是删除启动文件夹里的批处理,询问是否重启。然后进行调用。
绯色鎏金
发表于 2015-9-14 11:20:50 来自手机 | 显示全部楼层
风之咩~ 发表于 2015-9-14 11:11
start SHUTDOWN /R /F /T 6
del %0

楼主的问题是出现提示之后直接关闭cmd窗口,同时要做到删除自身批处理文件

我是水平有限,不知道批处理如何写才能做到。就我的感觉,关闭窗口就是直接结束进程了,后面的命令是不会执行的,,不可能删除自己
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-7-22 05:44 , Processed in 0.106447 second(s), 16 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表