gpt4 book ai didi

rust - "cd"执行一系列命令时没有效果

转载 作者:行者123 更新时间:2023-12-02 01:28:37 25 4
gpt4 key购买 nike

我想制作一个类似 CLI 的小型项目,我可以在其中执行一系列命令。所以,我写了这段代码:

let commands = ["cd C:\\Users\\MegaMind\\Documents\\dynamodb_local_latest","dir","echo rust"];
for ccc in &commands {
let rc = Command::new("cmd")
.arg("/C")
.arg(ccc)
.output()
.expect("there was an error");

io::stdout().write_all(&rc.stdout).unwrap();
// io::stdout().write_all(&rc.stderr).unwrap();
}

它似乎在源代码文件夹中运行dir命令,而不是C:\\Users\\MegaMind\\Documents\\dynamodb_local_latest。如何让cd生效?

最佳答案

工作目录适用于每个进程。每个命令都是一个单独的进程。 cd 命令更改该进程的工作目录,然后该进程退出并且该目录更改的记录消失。然后您启动一个新进程(运行 dir 的进程),它仍然使用原始工作目录。

如果您想为任何给定的子命令设置工作目录,只需 use the current_dir method设置时或(取决于您的需求)您可能需要 change the Rust process's working directory (在未重写时将由子进程继承)。

关于rust - "cd"执行一系列命令时没有效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73822157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com