use std::process::{exit, Command};
use std::time::Duration;
fn main() {
use std::time::Instant;
let now = Instant::now(); //计算耗时
//=====================================================
println!(">>>>>>>>>>>>>>>>>>>>命令行工具开发模板<<<<<<<<<<<<<<<<<<<<<<<<");
println!("****************************************************************************");
println!("* ");
println!("* 该工具仅适用于xxxx 如果在其它系统上使用导致出现问题,作者概不负责 ");
println!("* ");
println!("* 该工具使用前请先xxxxxx!");
println!("* 该工具使用前请先xxxxxx!");
println!("* 该工具使用前请先xxxxxx!");
println!("* ");
println!("* 作者:xxxxxxxxx ");
println!("* 时间:2021年10月7日11:13:55 ");
println!("* 该工具使用Rust语言构建 ");
println!("* ");
println!("****************************************************************************");
let position = input_task_bar_position();
if position > 3 {
println!("输入错误!");
return;
}
if position == 0 {
println!("退出");
exit(0);
}
if position == 1 {
reboot_explorer();
println!("重启资源管理器成功!");
exit(0);
}
//=====================================================
//计算耗时
let duration = now.elapsed();
let s = duration.as_secs();
let mut ms = duration.as_millis();
let mut us = duration.as_micros();
us -= ms * 1000;
ms -= s as u128 * 1000;
println!("耗时:{} s {} ms {} us", s, ms, us);
}
/// 输入要修改的位置
fn input_task_bar_position() -> u8 {
println!("\n请输入要更改任务栏的位置:");
println!("注:0 表示退出,1 表示重启资源管理器,2 表示xxx,3 表示xxxx,其它输入无效!");
let mut input_data = String::new();
std::io::stdin()
.read_line(&mut input_data)
.expect("read line error!");
match input_data.trim().parse::<u8>() {
Ok(data) => {
println!("输入:{}", data);
return data;
}
Err(_) => {
println!("输入错误!");
}
}
return 0xff as u8;
}
/// 重启资源管理器
fn reboot_explorer() {
let _ = Command::new("cmd.exe")
.arg("/c")
.arg("taskkill /im explorer.exe /f")
.output();
std::thread::sleep(Duration::from_secs(1));
let _ = Command::new("cmd.exe")
.arg("/c")
.arg("explorer.exe")
.spawn();
}
如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!
txttool.com 说一段 esp56物联 查询128 IP查询