Rust執行cmd或shell命令


use std::process::Command;

// cmd_str可以是從輸入流讀取或從文件里讀取
let cmd_str: String;
if cfg!(target_os = "windows") {
    // 這里不用\\而是/的話會被windows認為/tmp的/t是一個option而報錯
    cmd_str = "dir d:\\tmp".to_string();
} else {
    cmd_str = "dir /usr/tmp".to_string();
}

let output = if cfg!(target_os = "windows") {
    Command::new("cmd").arg("/c").arg(cmd_str).output().expect("cmd exec error!");
} else {
    Command::new("sh").arg("-c").arg(cmd_str).output().expect("sh exec error!");
}

let output_str = String::from_utf8_lossy(&output.stdout);
println!("{}", output_str);

上面的是同步執行命令,還可以異步執行的方式,貌似叫child的一個方法,這個需要用的時候再說;而且也可以利用task將同步的放到異步的地方進行執行;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM