我需要一个Rust程序在完成其目的后删除自己。
let output = Command::new("cmd")
.args(&["/C", "delete.bat"])
.output()
.expect("Failed to execute command");
字符串
这是我用来运行这个bat文件的代码:
timeout 0.01
del nameofexe.exe
del delete.bat
型
它在我的电脑上运行的很好,但是当我试图在另一台机器上运行它的时候,它就不工作了。它失败了,在机器上出现了一个“拒绝访问”的错误。
我在C++中尝试了同样的方法,并且成功了。有没有其他方法可以让程序删除自己,或者有一个我看不到的bug?
1条答案
按热度按时间nkoocmlb1#
这是正确的代码:
字符串
您需要使用
.spawn()
而不是.output()
,因为.spawn()
会将进程从主程序中分离出来,而.output()
会等待命令完成。