多个命令cmd在/ f的单行中

时间:2017-08-16 04:29:34

标签: cmd

我已经在cmd中的每一行运行此命令并且工作正常。如何在一行中的cmd中运行此命令?

我尝试使用&但如果我逐行运行命令并使用&,我会得到不同的结果。

for /f %i in ('getmac^|find "-"') do set str=%i
set string=%str:-=%
REG QUERY HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318} /s | findstr "\<%string%\>"

下面我附上了一个版画屏幕

Command run line by line

Command run with &

2 个答案:

答案 0 :(得分:0)

您可以使用&字符分隔行,如this question所示。

答案 1 :(得分:0)

在此尝试:

for /f %i in ('getmac^|find "-"') do (set str=%i& set string=!str:-=!& REG QUERY HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318} /s | findstr \^<!string!\^>)

请注意复合语句周围的括号,以及用于转义< >重定向的插入符号。如果您需要在cmd中启用延迟变量替换,请使用:

cmd /v:on /c "for /f %i in ('getmac^|find "-"') do (set str=%i& set string=!str:-=!& REG QUERY HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318} /s | findstr \^<!string!\^>)"