Rust程序有办法删除自己吗?

dxxyhpgq  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(154)

我需要一个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?

nkoocmlb

nkoocmlb1#

这是正确的代码:

let _output = Command::new("cmd")
    .args(&["/C ", path])
    .spawn()
    .unwrap();

字符串
您需要使用.spawn()而不是.output(),因为.spawn()会将进程从主程序中分离出来,而.output()会等待命令完成。

相关问题