我已经在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%\>"
下面我附上了一个版画屏幕
答案 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!\^>)"