我想在Windows CMD控制台中运行两个命令。
在Linux中,我会这样做
touch thisfile ; ls -lstrh
在Windows上是怎么做的?
自2000年以来,在所有的微软操作系统上都是这样,今天仍然很好。
dir & echo foo
如果你想让第二条命令只在第一条命令成功退出时执行。
dir && echo foo
在一行中执行多条命令的单引号(&)语法可以追溯到Windows XP、Windows 2000和一些早期NT版本。(根据这里的一位评论者,至少是4.0版本)。
关于这个问题,还有很多其他的观点,你会发现在这个页面上的滚动。
历史数据如下,对那些可能发现有教育意义的人来说。
在这之前,&&语法只是替代4DOS的外壳的一个功能,在该功能被添加到微软的命令解释器中之前。
在Windows 95、98和ME中,你会用管道字符代替。
dir | echo foo
在MS-DOS 5.0及以后的版本中,通过一些早期的Windows和NT版本的命令解释器,(没有记录的)命令分隔符是字符20(Ctrl+T),我在这里用^T表示。
dir ^T echo foo
文件中的一段话。
来源。微软,Windows XP专业版产品文档,[命令外壳概述*]1。
使用多个命令和条件处理符号。
你可以使用条件处理符号从一个命令行或脚本中运行多个命令。当你用条件处理符号运行多个命令时,条件处理符号右边的命令会根据条件处理符号左边的命令的结果采取行动。
例如,你可能想只在前一条命令失败时才运行一条命令。或者,你可能想只在前一条命令成功的情况下运行一条命令。
你可以使用下表中所列的特殊字符来传递多个命令。
&[...]
。command1 & command2
。 用来分隔一个命令行中的多个命令。Cmd.exe运行第一条命令,然后再运行第二条命令。
&& [...]
command1 && command2
。 用于运行&&后面的命令,只有在符号前面的命令成功的情况下。Cmd.exe运行第一条命令,只有在第一条命令成功完成后才运行第二条命令。
|| [...]
...command1 ||command2
. 用于仅在前面的命令||失败时运行后面的命令。Cmd.exe运行第一条命令,只有在第一条命令没有成功完成(收到大于0的错误代码)时才运行第二条命令。
( ) [...]
(command1 & command2)
。 用来分组或嵌套多个命令。
; 或 ,
.命令1参数1;参数2
。 用来分隔命令参数。