我知道如何使用>|>>|<|<<运算符重定向Windows shell命令,但我无法完成命令中使用的FOR命令?
例如:
for /f "usebackq tokens=*" %%I in (`__COMMAND__ 2>nul`) do (
set MYVAR=%%I
)
Run Code Online (Sandbox Code Playgroud)
你知道,在这里我想要沉默一下这个__COMMAND__.shell抱怨它不期望2在那个地方(其他重定向的行为相同).
有人可以帮忙吗?
for /f "usebackq tokens=*" %%I in (`__COMMAND__ 2^>nul`) do (
set MYVAR=%%I
)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,重定向和条件执行运算符需要使用插入符进行转义.
或者用双引号括起来:
for /f "usebackq tokens=*" %%I in (`"__COMMAND__ 2>nul"`) do (
set MYVAR=%%I
)
Run Code Online (Sandbox Code Playgroud)
使用延迟扩展也是可能的:
@echo off
setlocal enableDelayedExpansion
set "command=__COMMAND__ 2>nul"
for /f "usebackq tokens=*" %%I in (`!command!`) do (
set MYVAR=%%I
)
Run Code Online (Sandbox Code Playgroud)