我想在Windows CMD控制台中运行两个命令。

在Linux中我会这样做

touch thisfile ; ls -lstrh

在Windows上是怎么做的呢?


当前回答

很简单:用&&符号区分它们。 例子:

echo "Hello World" && echo "GoodBye World".

“再见世界”将印在“你好世界”之后。

其他回答

自2000年以来,所有的微软操作系统都是这样的,直到今天仍然很好:

dir & echo foo

如果你希望第二个命令只在第一个命令成功退出时执行:

dir && echo foo

在一行上执行多个命令的单个&(&)语法可以追溯到Windows XP、Windows 2000和一些较早的NT版本。(根据这里的一个评论,至少4.0。)

关于这一点,您还可以在滚动本页面时找到其他一些观点。

下面是一些历史数据,供那些觉得有教育意义的人参考。

在此之前,&&语法只是shell替代品4DOS的一个特性,之后该特性被添加到微软命令解释器中。

在Windows 95、98和ME中,你可以使用管道字符:

dir | echo foo

在MS-DOS 5.0及以后版本中,通过一些较早的Windows和NT版本的命令解释器,(未记录的)命令分隔符是字符20 (Ctrl+T),这里我将用^T表示。

dir ^T echo foo

嗯,你有两个选择:管道,或只是&:

DIR /S & START FILE.TXT

Or,

tasklist | find "notepad.exe"

管道(|)主要用于获取一个命令的输出,并将其输入到另一个命令中。(&)表示运行这个和那个。

尝试用这些行创建一个.bat或.cmd文件,使用doskey和$T,相当于&,在一行中执行多个命令行:

touch=echo off $T echo. ^> $* $T dir /B $T echo on

它将创建一个空文件。

例子:

touch myfile

在cmd中,你会得到这样的东西:

但是正如前面提到的,建议使用&操作符从CMD提示符在一行中执行多个命令行。

喜欢=)

在windows 10中,你也可以使用scriprunner:

ScriptRunner.exe -appvscript demoA.cmd arg1 arg2 -appvscriptrunnerparameters -wait -timeout=30 -rollbackonerror -appvscript demoB.ps1 arg3 arg4 -appvscriptrunnerparameters -wait -timeout=30 -rollbackonerror

它允许你在一行上启动几个命令,你可以连续运行它们,也可以不等待彼此,你可以设置超时和错误回滚。

cmd /c ipconfig /all & Output.txt

该命令执行命令并在一个命令中打开Output.txt文件