怎么用c#打开dos命令或执行bat 关机命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用c#打开dos命令或执行bat 关机命令相关的知识,希望对你有一定的参考价值。

参考技术A 在记事本里打以下命令
shutdown -s -t 20 -c "显示信息"
然后保存为后缀名为bat的文件就可以了.
20为关机时间

以下为详细关机命令
设置好自动关机后,如果想取消的话,可以在运行中输入“shutdown -a”。另外输入“shutdown -i”,则可以打开设置自动关机对话框,对自动关机进行设置。

Shutdown.exe的参数,每个都具有特定的用途,执行每一个都会产生不同的效果,比如“-s”就表示关闭本地计算机,“-a”表示取消关机操作,下面列出了更多参数,大家可以在Shutdown.exe中按需使用。

-f:强行关闭应用程序
  -m:\\计算机名:控制远程计算机
  -i:显示图形用户界面,但必须是Shutdown的第一个选项
  -l:注销当前用户
  -r:关机并重启
  -t:时间:设置关机倒计时
  -c:“消息内容”:输入关机对话框中的消息内容(不能超127个字符)
参考技术B c#中的Process类可方便地调用外部程序.

BAT/CMD中将命令执行结果赋值给变量

如题,我想把ipconfig的执行结果赋值给变量a

1、将我们写好的定期清除旧数据的bat批处理文件拖到cmd命令窗口中。

2、执行返回乱码报错,提示乱码字段非内部或外部命令,也不是科运行的程序或批处理文件。

3、我们打开批处理文件,批处理文件是用来定时删除1天前的zip的文件。

4、单独将语句粘贴到cmd命令行中,执行成功。

5、从新用其他字符集来写bat批处理文件即可。打开我们写好的批处理bat文件,选择文件,在文件的菜单中点击另存为选项。

6、我们将文件另存为ANSI编码的格式的bat批处理文件。

7、重新直接运行bat批处理文件或者在cmd中运行成功执行。

这句的意识是 运行ipconfig命令,并把结果通过管道命令 | 传给find命令查找将含有 ip address 字符的行 赋值给变量ip 并显示变量ip的值,/i是参数,意识是不区分大小写, ^ 符号是在批处理中,写入管道符号是要加入才行的去掉管道命令也能运行,但是结果是不一样的,你再另起一行,加一句pause来暂停,就能看到不同的结果了还有一点忘说了 tokens=15 意识是将每一行以空格作为分隔符,的第15例,的值赋值给变量ip总结:就是运行ipconfig命令,并把结果含有 ip address 字符的行,以空格为分隔符的第15例赋值给变量 %ip%,其实就是自己的ip地址
参考技术A @echo off & color 0d & setlocal enabledelayedexpansion 
  ipconfig>ip.txt
    for /f "delims=" %%a in (ip.txt) do (
      set ip=%%a
      echo !ip!
    )
    pause>nul 
    
    
    :: 1. 将ipconfig的结果输出保存到文本
    :: 2. 再用for语句把文本内的数据赋值给变量ip
    :: 3. 最后在输出变量ip
    
    :: 中国批处理脚本联盟

追问

能不能只将红色的内容输出到1.txt,或者只截取这一段并输出? 

追答@echo off & color 0e & setlocal enabledelayedexpansion 
  ipconfig>ip.txt 
    for /f "delims=" %%a in (ip.txt) do ( 
      for /f "tokens=1* delims=:" %%i in ('call echo %%a^|find /i "IPv4 地址"') do (
     Echo %%a>>"1.txt"
        )  
    ) 
 del /s /q ip.txt & start 1.txt
 exit
 
 :: 已解决!!!!
 :: 中国批处理脚本联盟
 :: 望采纳!!!!

本回答被提问者和网友采纳
参考技术B 运行一条命令时,它都会产生某种输出:要么是该命令的期望结果,或者是该命令执行细节的状态/错误消息。有些时候,你可能想要将某个命令的输出内容存储在一个变量中,以待在后续操作中取出来使用。

本文将介绍将 shell 命令赋值给变量的不同方法,这对于 shell 脚本编程是特别有用的。

可以使用如下形式的 shell 命令置换特性,将命令的输出存储到变量中:

变量名=$(命令) 变量名=$(命令 [命令选项 ...] 参数1 参数2 ...) 或者: 变量名=`命令` 变量名=`命令 [命令选项 ...] 参数1 参数2 ...`
以下是使用命令置换特性的示例:

本例,我们将 who (显示当前登录系统的用户) 的输出值存储到 CURRENT_USERS 变量中:

$ CURRENT_USERS=$(who)
然后,我们可以使用 echo 命令 显示一个句子并使用上述变量,如下:

$ echo -e "以下为登录到系统中的用户: $CURRENT_USERS"
上面的命令中:-e 标记表示解释所有的转义序列 (如 为换行)。为节约时间和内存,通常在 echo 命令 中直接使用命令置换特性,如下:

$ echo -e "以下为登录到系统中的用户: $(who)"

在 Linux 中显示当前登录系统的用户

接下来,为了演示上面提到的第二种形式,我们以把当前工作目录下文件数存储到变量 FILES ,然后使用 echo 来输出,如下:

$ FILES=`sudo find . -type f -print | wc -l` $ echo "当前目录有 $FILES 个文件。"

显示目中包含文件的数量

就是这些了。我们展示了将 shell 命令的输出赋值给变量的方法。你可以在下边的评论反馈区留下你的想法。
参考技术C @echo off
rem 开启延迟环境变量 如:!IP! 不用%IP%
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "delims=: tokens=1,2*" %%a in ('ipconfig')do (
if "%%a" EQU " IPv4 地址 . . . . . . . . . . . . " (
set IP=%%b
echo IP4:!IP!
)
)
pause
:: 1. 用for语句把执行结果每行的数据赋值给变量%%a %%b,分割为 “:”
:: 2. 使用判断%%a的值是否为所取列
:: 3. 最后赋值IP变量并输出
参考技术D ipconfig|find "IPv4">ip.txt
(set/p a=)<ip.txt
set /i a=%a:*:=%
del ip.txt

感觉可能还能再简单些,不过这样已经够了

以上是关于怎么用c#打开dos命令或执行bat 关机命令的主要内容,如果未能解决你的问题,请参考以下文章

DOS命令关机小程序

windows如何开机自动运行定时关机脚本

怎么使用命令提示符。

cmd命令?

设置电脑定时自动关机方法

win 7 cmd命令窗口 一弹出来就自动关闭 急求方法解决