我想在Windows CMD控制台中运行两个命令。
在Linux中我会这样做
touch thisfile ; ls -lstrh
在Windows上是怎么做的呢?
我想在Windows CMD控制台中运行两个命令。
在Linux中我会这样做
touch thisfile ; ls -lstrh
在Windows上是怎么做的呢?
当前回答
自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
其他回答
自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
我尝试在同一个窗口中有两个ping,它是在同一行上的串行命令。完成第一个命令后,执行第二个命令。
解决方案是在Windows 7命令提示符中结合start /b。
像往常一样启动,不带/b,并在单独的窗口中启动。
在同一行中用于启动的命令是:
start /b command1 parameters & command2 parameters
无论如何,如果您希望解析输出,我不建议使用这种方法。 我注意到输出在命令的输出之间被打乱了。
当您尝试在一行中使用或操作变量时,请注意它们的内容!例如,如下所示的变量
PATH=C:\程序文件(x86)\某处;“C: \企业\酷工具”;% USERPROFILE % \ AppData \当地\ \ WindowsApps微软;
可能会导致很多无法处理的麻烦,如果你使用它作为%PATH%
右括号终止组语句 双引号不允许使用%PATH%来处理圆括号问题 像%USERPROFILE%这样的引用变量将包含什么?
如果你想创建一个cmd快捷方式(例如在你的桌面上),添加/k参数(/k表示保持,/c将关闭窗口):
cmd /k echo hello && cd c:\ && cd Windows
你可以使用call来克服环境变量被太快求值的问题。
set A=Hello & call echo %A%