找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 30021|回复: 6

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

[复制链接]
发表于 2024-4-17 09:07:54 | 显示全部楼层 |阅读模式
本帖最后由 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
发表于 2024-4-18 10:21:00 | 显示全部楼层
脚本最后来一句 del %1 有没有用?
 楼主| 发表于 2024-4-19 12:17:35 | 显示全部楼层
回复 2# holley


    %1没有参数的,而且脚本被占用了,所以如果不释放句柄应该是删不了自身的。
发表于 2024-4-19 13:52:35 | 显示全部楼层
标记法
  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"
复制代码
发表于 2024-4-19 17:11:34 | 显示全部楼层
试试删除前重定向句柄3
例如 echo,3>nul 4>nul
 楼主| 发表于 2024-4-22 11:58:59 | 显示全部楼层
回复 5# Five66


    试了,第一反应就是这么写,但是没任何反应
 楼主| 发表于 2024-4-22 12:01:04 | 显示全部楼层
回复 4# zaqmlp


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

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 02:47 , Processed in 0.017890 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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