如何在Windows CMD中一行中运行两个命令?

1329

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

在Linux中,我会这样做

touch thisfile ; ls -lstrh

在Windows上如何实现?

24个回答

0
如果你想要“链式”执行命令,可以使用“&&”(例如:npm install && npm build)- 第二个命令将等待第一个命令的退出值。
如果你需要同时运行两个命令而不等待它们完成,你必须使用start,例如:start http-server && start ng build --watch。

0

& 和 && 的使用非常完美,正如djdanlib所说的那样。但是当我尝试连续运行许多安装程序时,它不会等待每个程序完成后再进行下一个。对于命令行应用程序和命令来说,它工作得很好,但是当你启动一个图形界面应用程序(比如安装程序)时,Windows会在成功启动程序后立即返回成功,而不会等待它关闭。

我通过在每个程序之间加入暂停来解决了这个问题,像这样:

for %a in (*.exe) do pause && start %a

(假设您想逐个运行当前文件夹中的每个 .exe 文件)


start /wait 可能有效(取决于可执行文件的编程方式) - Stephan

-1

当您尝试在一行中使用或操作变量时,请注意它们的内容!例如,像以下这样的变量

PATH=C:\Program Files (x86)\somewhere;"C:\Company\Cool Tool";%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;

如果您将其用作%PATH%,可能会导致许多不可处理的问题

  1. 闭合括号终止了您的组语句
  2. 双引号不允许您使用%PATH%来处理括号问题
  3. 那么类似于%USERPROFILE%的引用变量包含什么内容?

3
这与在Windows CMD中运行两个命令有什么关系? - Peter Mortensen

-3

很简单:只需用&&符号来区分它们。 例如:

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

在“Hello World”之后将打印出“Goodbye World”。


7
尽管已经有旧答案显示了相同的内容,但仍然不完全正确。 && 是一种条件运算符,只有在第一个命令成功(errorlevel=0)时才会执行下一个命令。 - jeb
当然,如果一个人想运行两个命令,那么这两个命令都是正确的,因此一切都会顺利进行。 - Rajan Dhanowa
2
Rajan:他的意思是“只有在第一个命令成功执行后,才会执行下一个命令”。 - Ivan
2
只有在成功打印“Hello World”时,才会打印“Goodbye World”。正如@jeb所说,“&&”是有条件的。无论上一个命令是否成功,“&”都会运行命令。 - Pranav A.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接