码迷,mamicode.com
首页 > 系统相关 > 详细

Rust执行cmd或shell命令

时间:2020-07-10 13:06:03      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:else   utf8   string   命令   windows   ring   output   oss   读取   

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将同步的放到异步的地方进行执行;

Rust执行cmd或shell命令

标签:else   utf8   string   命令   windows   ring   output   oss   读取   

原文地址:https://www.cnblogs.com/silentdoer/p/13278650.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!