You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境下Rust调用dir命令的测试失败原因咨询

问题原因及解决办法

失败原因

Windows系统里的dir是cmd.exe的内置命令,并非独立的可执行程序。而Rust的std::process::Command::new()只能直接调用独立的可执行文件(比如notepad.exe、ping.exe这类),无法直接识别shell内置命令,因此调用Command::new("dir")会找不到对应程序,导致res.is_ok()返回false,测试失败。

修复后的测试代码

修改测试代码,通过cmd.exe间接执行dir命令:

use std::process::Command;

#[test]
fn runs() {
    let mut cmd = Command::new("cmd.exe");
    let res = cmd.arg("/c").arg("dir").output();
    assert!(res.is_ok());
}

参数/c用于告诉cmd.exe,执行完后续指定的命令后立即退出,这样就能正确触发dir命令并获取执行结果。

内容的提问来源于stack exchange,提问作者Steve Greene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 17:05:05