批处理:重命名文件与最近删除的文件同名,表示文件已存在

时间:2014-12-08 15:48:43

标签: windows batch-file batch-processing

我正在尝试使用它来终止正在运行的进程,然后删除运行该进程的exe,然后重命名一个与已删除文件同名的文件(.temp),最后运行它。但是,我遇到两个问题:首先是我需要以管理员身份运行此命令以便能够终止任务(我已经解决了这个已经运行的cmd作为管理员),第二个问题是当重命名时执行它说文件已经存在(但它不应该因为之前有删除)。如果您没有运行要杀死的exe,代码运行正常,但如果它正在运行,则会出现所述错误。

 @echo off
    set name=%1
    taskkill /F /IM %name%
    del %name%
    ren %name%.temp %name%
    start %name%
    exit

我在这段批处理代码中遗漏了什么? 感谢

2 个答案:

答案 0 :(得分:0)

可能是删除还没有完全解决。您可以使用MOVE而不是REN,这将覆盖文件。

答案 1 :(得分:0)

根据@Mofi的说法,问题在于删除由于taskkill尚未完成而执行得太早。通过在taskkill和del。

之间添加“timeout / t 2”来解决这个问题