Answers:
就在这里。是&。
&&
如果命令1没有失败,它将在命令2完成时执行命令2。
&
不管执行。
至少在MS-DOS 6.22中,我曾经使用键Ctrl+ T来获得一种段落符号。就像&Phoshi提到的那样。但是,如果您正在运行doskey.exe,这将仅起作用。
start
例如,如果要用1行执行多个命令,则以开头的命令,例如,如果要执行这样的命令:
start "" netsh dump && pause
然后,您需要分两个步骤进行操作(此答案的结尾处是一线解决方案)。
首先,将命令写入临时批处理文件(在这种情况下,您可以使用&
或&&
):
echo netsh dump ^&^& pause ^&^& exit>foobar.cmd
-or-
echo netsh dump ^& pause ^& exit>foobar.cmd
请注意,您需要使用来“转义”每个"&"s
(“&”号),"^"
以使其在echo
命令中被视为普通字符。或者,您可以使用文本编辑器(例如记事本)创建临时批处理文件。
然后,使用start
来启动批处理文件:
start "" foobar.cmd
-or-
start "" "temporary foobar.cmd"
注意:空的双引号用于
"Title"
将在start
打开的命令窗口的标题栏中显示的对。从"Title"
技术上讲,此参数是的可选参数start
,但是如果要运行的命令是双引号,则实际上是必需的start
。例如,在第二个示例中:
start "" "temporary foobar.cmd"
如果您省略像这样的空双引号对:
start "temporary foobar.cmd"
然后
start
将打开一个新命令窗口,并"temporary foobar.cmd"
用作新命令窗口"Title"
,并且在新命令窗口中将不会执行任何操作。)
如果要start
等待批处理文件完成(在pause
关闭后),然后再start
完成,则需要将/w
开关添加到start
命令中:
start "" /w foobar.cmd
您可以将所有内容放到一行上,甚至删除(删除)临时批处理文件(foobar.cmd
):
echo netsh dump ^&^& pause ^&^& exit>foobar.cmd && start "" /w foobar.cmd && del foobar.cmd
-or-
echo netsh dump ^& pause ^& exit>foobar.cmd & start "" /w foobar.cmd & del foobar.cmd
请注意,如果要删除临时批处理文件,则需要start
使用该/w
开关运行,否则,临时批处理文件可能会在有机会运行之前被删除。
如果要用if包装第一个命令,但是无论如何仍要执行第二个命令,则必须用cmd / c包装if,如下所示:
cmd / c如果存在abc。(rd / q abc)&回声你好
如果您没有在if前面加上cmd / c,则整个命令将成为if(您可能不需要)的一部分。
(if exist abc. command₁) & command₂
start "" cmd /c "(command₁) & (command₂)"
在网络上的任何地方都没有得到回答,而是链接大多数批处理语句的唯一方法。恭喜你。
if
但是无论如何还是要执行第二个命令,那么您也必须if
用a 来包装cmd /c
”,我以一种不带的方式进行了响应cmd /c
。那么,为什么要说链接大多数批处理语句的唯一方法是使用cmd /c
?而为什么要start
投入其中呢?
是的,使用&
!
%command1% & %command2%
运行两个命令
%command1% && %command2%
运行第一个命令,如果可以运行第二个命令
%command1% || %command2%
运行第一个命令,如果失败,则运行seconds命令
看这里
&
,&&
和||
实际上不是一个命令,这是一批的一部分。不是命令。
%command%
可以将该字符串作为命令执行,请参见此处
我发现使用“开始”可以修复多个命令的正常运行(我正在运行Windows 10 Home)。例如:
START chrome.exe "page.web.com" & timeout 20
&
,不是start
!
start
?
&
且&&
仅适用于Windows'-cmd.exe
而不是 DOS。