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

在Linux中我会这样做

touch thisfile ; ls -lstrh

在Windows上是怎么做的呢?


当前回答

如果你想创建一个cmd快捷方式(例如在你的桌面上),添加/k参数(/k表示保持,/c将关闭窗口):

cmd /k echo hello && cd c:\ && cd Windows

其他回答

再举一个例子:例如,当我们使用gulp构建系统时,而不是

Gulp -默认>构建

Gulp构建-构建构建文件夹

Gulp watch -开始文件监视

Gulp dist- build dist-folder

我们可以用一行代码来实现:

cd c:\xampp\htdocs\project & gulp & gulp watch

cmd /c ipconfig /all & Output.txt

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

当在同一行上运行多个命令时,可以使用许多处理符号,在某些情况下可能导致处理重定向,在其他情况下可能改变输出,或者导致失败。一个重要的例子是将操作变量的命令放在同一行。

@echo off
setlocal enabledelayedexpansion
set count=0
set "count=1" & echo %count% !count!

0 1

正如您在上面的例子中看到的,当使用变量的命令被放在同一行时,您必须使用延迟展开来更新变量值。如果你的变量被索引了,使用CALL命令和%%修饰符来更新它在同一行的值:

set "i=5" & set "arg!i!=MyFile!i!" & call echo path!i!=%temp%\%%arg!i!%%

path5=C:\Users\UserName\AppData\Local\Temp\MyFile5

如果你想创建一个cmd快捷方式(例如在你的桌面上),添加/k参数(/k表示保持,/c将关闭窗口):

cmd /k echo hello && cd c:\ && cd Windows

在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

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