我想在Windows CMD控制台中运行两个命令。
在Linux中我会这样做
touch thisfile ; ls -lstrh
在Windows上是怎么做的呢?
我想在Windows CMD控制台中运行两个命令。
在Linux中我会这样做
touch thisfile ; ls -lstrh
在Windows上是怎么做的呢?
当前回答
我试图创建批处理文件启动提升cmd,并使其运行2个单独的命令。 当我使用&或&&字符时,我遇到了一个问题。例如,这是我的批处理文件中的文本:
powershell.exe -Command "Start-Process cmd \"/k echo hello && call cd C:\ \" -Verb RunAs"
我得到解析错误:
经过几次猜测,我发现,如果你用“&&”这样的引号包围&&,它是有效的:
powershell.exe -Command "Start-Process cmd \"/k echo hello "&&" call cd C:\ \" -Verb RunAs"
结果如下:
也许这能帮到别人:)
其他回答
当您尝试在一行中使用或操作变量时,请注意它们的内容!例如,如下所示的变量
PATH=C:\程序文件(x86)\某处;“C: \企业\酷工具”;% USERPROFILE % \ AppData \当地\ \ WindowsApps微软;
可能会导致很多无法处理的麻烦,如果你使用它作为%PATH%
右括号终止组语句 双引号不允许使用%PATH%来处理圆括号问题 像%USERPROFILE%这样的引用变量将包含什么?
&是Bash中等价的;&&是Bash中的&&(只在前一个没有导致错误时才运行命令)。
你可以使用call来克服环境变量被太快求值的问题。
set A=Hello & call echo %A%
在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
它允许你在一行上启动几个命令,你可以连续运行它们,也可以不等待彼此,你可以设置超时和错误回滚。
很简单:用&&符号区分它们。 例子:
echo "Hello World" && echo "GoodBye World".
“再见世界”将印在“你好世界”之后。