Board logo

标题: [文本处理] [已解决]求助批处理重定向防止重复运行和删除脚本自身 [打印本页]

作者: lonron    时间: 2024-4-17 09:07     标题: [已解决]求助批处理重定向防止重复运行和删除脚本自身

本帖最后由 lonron 于 2024-4-23 09:45 编辑

http://bbs.bathome.net/redirect.php?goto=findpost&ptid=16369&pid=106531
当用了4L老师的这段代码防止重复运行自身后,如果脚本最后需要删除自身,貌似会失效。(被占用?)
在保留实现这段代码效果且不要创建额外脚本的前提下,该如何删除脚本自身?(比如有没有类似释放句柄什么的?)

已有老师作答,感谢!
http://bbs.bathome.net/redirect.php?goto=findpost&ptid=16369&pid=280201
作者: holley    时间: 2024-4-18 10:21

脚本最后来一句 del %1 有没有用?
作者: lonron    时间: 2024-4-19 12:17

回复 2# holley


    %1没有参数的,而且脚本被占用了,所以如果不释放句柄应该是删不了自身的。
作者: zaqmlp    时间: 2024-4-19 13:52

标记法
  1. @echo off&title "@_@"
  2. tasklist /v /fo csv /nh /fi "imagename eq cmd.exe"|find /c "@_@"|>nul findstr /be "1"||exit
  3. echo;only one can start
  4. pause
  5. del /a /f /q "%~f0"
复制代码

作者: Five66    时间: 2024-4-19 17:11

试试删除前重定向句柄3
例如 echo,3>nul 4>nul
作者: lonron    时间: 2024-4-22 11:58

回复 5# Five66


    试了,第一反应就是这么写,但是没任何反应
作者: lonron    时间: 2024-4-22 12:01

回复 4# zaqmlp


    这个确实可以防二次启动并且运行完自己删,但是有一个不算BUG的BUG,就是标题相同或者复制一摸一样的bat,那另一个bat也启动不了了,虽然这个例子很极端,但是确实不排除有这种应用可能。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2