我正在尝试使用它来终止正在运行的进程,然后删除运行该进程的exe,然后重命名一个与已删除文件同名的文件(.temp),最后运行它。但是,我遇到两个问题:首先是我需要以管理员身份运行此命令以便能够终止任务(我已经解决了这个已经运行的cmd作为管理员),第二个问题是当重命名时执行它说文件已经存在(但它不应该因为之前有删除)。如果您没有运行要杀死的exe,代码运行正常,但如果它正在运行,则会出现所述错误。
@echo off
set name=%1
taskkill /F /IM %name%
del %name%
ren %name%.temp %name%
start %name%
exit
我在这段批处理代码中遗漏了什么? 感谢
答案 0 :(得分:0)
可能是删除还没有完全解决。您可以使用MOVE而不是REN,这将覆盖文件。
答案 1 :(得分:0)
根据@Mofi的说法,问题在于删除由于taskkill尚未完成而执行得太早。通过在taskkill和del。
之间添加“timeout / t 2”来解决这个问题