楼主: qdlfk2
收起左侧

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

[复制链接]
qdlfk2
 楼主| 发表于 2015-9-14 11:23:51 | 显示全部楼层
绯色鎏金 发表于 2015-9-14 11:20
楼主的问题是出现提示之后直接关闭cmd窗口,同时要做到删除自身批处理文件

我是水平有限,不知道批处 ...

是的,那有没有办法在出现重启提示前先删除自身,然后在调用shutdown?
风之咩~
发表于 2015-9-14 11:26:16 | 显示全部楼层
qdlfk2 发表于 2015-9-14 11:23
是的,那有没有办法在出现重启提示前先删除自身,然后在调用shutdown?

我那命令也不行么
start SHUTDOWN /R /F /T 6
del %0
风之咩~
发表于 2015-9-14 11:27:17 | 显示全部楼层
本帖最后由 风之咩~ 于 2015-9-14 11:28 编辑
绯色鎏金 发表于 2015-9-14 11:20
楼主的问题是出现提示之后直接关闭cmd窗口,同时要做到删除自身批处理文件

我是水平有限,不知道批处 ...


del %0就是删除自己
start就是不等待
绯色鎏金
发表于 2015-9-14 11:28:47 来自手机 | 显示全部楼层
本帖最后由 绯色鎏金 于 2015-9-14 11:35 编辑
qdlfk2 发表于 2015-9-14 11:23
是的,那有没有办法在出现重启提示前先删除自身,然后在调用shutdown?


把一楼的内容写入到新的批处理,里面添加一行删除启动文件夹里面批处理的代码[放到其他文件夹,如temp文件夹里面]

然后在启动批处理里面调用那一个新批处理


之前的想法有问题,抱歉
qdlfk2
 楼主| 发表于 2015-9-14 11:48:49 | 显示全部楼层
风之咩~ 发表于 2015-9-14 11:27
del %0就是删除自己
start就是不等待

问题是如果在出现提示的时候关闭窗口,也就是执行到PAUSE这行的时候窗口关闭了,下面的这2行不会被执行
qdlfk2
 楼主| 发表于 2015-9-14 11:49:50 | 显示全部楼层
绯色鎏金 发表于 2015-9-14 11:28
把一楼的内容写入到新的批处理,里面添加一行删除启动文件夹里面批处理的代码[放到其他文件夹,如temp ...

这个思路可以,看来在一个批处理里实现不太现实
风之咩~
发表于 2015-9-14 12:16:53 | 显示全部楼层
qdlfk2 发表于 2015-9-14 11:48
问题是如果在出现提示的时候关闭窗口,也就是执行到PAUSE这行的时候窗口关闭了,下面的这2行不会被执行

你有试我这样写?
翼风Fly
发表于 2015-9-14 12:19:53 | 显示全部楼层
我提供一点思路
这个问题我认为最好还是两个文件,一个文件用来检测另一个是否在运行
既然刚才说到start了,还要等待那个窗口完成,那就 start /wait

如果代码不多的话,可以用>>来将内容输出到另一个批处理

若要隐藏一个批处理窗口,可在同一目录继续新建vbs:

[mw_shl_code=shell,true]Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c 批处理文件名",vbhide[/mw_shl_code]
比如,批处理是叫Run.bat,那么vbs的代码为:
[mw_shl_code=shell,true]Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c Run",vbhide[/mw_shl_code]

这就需要三个文件了。。。
绯色鎏金
发表于 2015-9-14 12:22:59 | 显示全部楼层
本帖最后由 绯色鎏金 于 2015-9-14 12:58 编辑
qdlfk2 发表于 2015-9-14 11:49
这个思路可以,看来在一个批处理里实现不太现实


试试看这样吧,弊端是temp文件夹里面的1.bat不会被删除。

[mw_shl_code=css,true]@echo off
echo @echo off>%temp%\1.bat
echo del %0>>%temp%\1.bat
echo echo  为使设置生效,将重启电脑,按任意键重启!>>%temp%\1.bat
echo echo.>>%temp%\1.bat
echo echo    取消或退出直接关闭窗口>>%temp%\1.bat
echo pause>>%temp%\1.bat
echo start shutdown /R /F /T 6 >>%temp%\1.bat
echo del %%0 >>%temp%\1.bat
start %temp%\1.bat[/mw_shl_code]

qdlfk2
 楼主| 发表于 2015-9-14 12:31:42 | 显示全部楼层
风之咩~ 发表于 2015-9-14 12:16
你有试我这样写?

试过了,如果执行到PAUSE这行窗口被关闭,下面的2行肯定不会再执行
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

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

Copyright © KaFan  KaFan.cn All Rights Reserved.

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

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

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