Batch file 正在搜索字符串中的子字符串-此时意外
我试图确定option是否是VC编译器的define语句/option(/DSOME_option=1,例如)。下面是选项处理循环的一部分,它返回错误“此时意外:=option”。我使用了来自的搜索子字符串解决方案 试试这个:Batch file 正在搜索字符串中的子字符串-此时意外,batch-file,cmd,Batch File,Cmd,我试图确定option是否是VC编译器的define语句/option(/DSOME_option=1,例如)。下面是选项处理循环的一部分,它返回错误“此时意外:=option”。我使用了来自的搜索子字符串解决方案 试试这个: @echo off setlocal enableDelayedExpansion set "DEFINE_STR=" :loop if not "%~1"=="" ( rem all defines set "option=%~1" if "!
@echo off
setlocal enableDelayedExpansion
set "DEFINE_STR="
:loop
if not "%~1"=="" (
rem all defines
set "option=%~1"
if "!option:/D=!" == "!option!" (
set "DEFINE_STR=!DEFINE_STR! %~1"
echo "DEFINE_STR=!DEFINE_STR!"
pause
)
shift
goto :loop
)
endlocal
在这个问题中,您可以找到更多信息->第一个等号…您是否在
%1
中有括号?@AntonKochkov您还需要延迟展开,因为您正在更改括号中的变量…请检查我的更新
@echo off
setlocal enableDelayedExpansion
set "DEFINE_STR="
:loop
if not "%~1"=="" (
rem all defines
set "option=%~1"
if "!option:/D=!" == "!option!" (
set "DEFINE_STR=!DEFINE_STR! %~1"
echo "DEFINE_STR=!DEFINE_STR!"
pause
)
shift
goto :loop
)
endlocal