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

在Linux中我会这样做

touch thisfile ; ls -lstrh

在Windows上是怎么做的呢?


当前回答

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

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

它将创建一个空文件。

例子:

touch myfile

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

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

喜欢=)

其他回答

你可以使用call来克服环境变量被太快求值的问题。

set A=Hello & call echo %A%

我试图创建批处理文件启动提升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"

结果如下:

也许这能帮到别人:)

cmd /c ipconfig /all & Output.txt

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

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

PATH=C:\程序文件(x86)\某处;“C: \企业\酷工具”;% USERPROFILE % \ AppData \当地\ \ WindowsApps微软;

可能会导致很多无法处理的麻烦,如果你使用它作为%PATH%

右括号终止组语句 双引号不允许使用%PATH%来处理圆括号问题 像%USERPROFILE%这样的引用变量将包含什么?

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

@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