Batch file 延迟扩展不适用于for循环
我有这个批处理脚本,我调用另一个批处理脚本“Strip\u batch.bat”,并将Batch file 延迟扩展不适用于for循环,batch-file,Batch File,我有这个批处理脚本,我调用另一个批处理脚本“Strip\u batch.bat”,并将%Stripped\u Name%变量作为参数传递。但是这个参数不起作用。知道如何传递这个变量吗 @echo off setlocal enableextensions enableDelayedExpansion set CONFIGURATIONS=HAVING_FUN_WITH_COLLEGUES for %%i in (%CONFIGURATIONS%) do ( set Original_Name=%
%Stripped\u Name%
变量作为参数传递。但是这个参数不起作用。知道如何传递这个变量吗
@echo off
setlocal enableextensions enableDelayedExpansion
set CONFIGURATIONS=HAVING_FUN_WITH_COLLEGUES
for %%i in (%CONFIGURATIONS%) do (
set Original_Name=%%i
echo !Original_Name!
set Stripped_Name=!Original_Name:~0,-14!
echo !Stripped_Name!
call Strip_Batch.bat %%i %Stripped_Name%
if errorlevel 1 goto error_exit
)
:the_end
endlocal
exit /b 0
:error_exit
endlocal
exit /b 1
根据我的评论,我首先建议:
call Strip_Batch.bat %%i !Stripped_Name!
第二个(更好,也适用于带空格的参数):
调用Strip\u Batch.bat%%i!你的名字代码>。很抱歉,它也不起作用:-(调用Strip\u Batch.bat“%%i”“!Stripped\u Name!”
:)不,它也不起作用。请参阅我的第二个批处理文件@echo off setlocal enableextensions enableDelayedExpansion set Param1=MyName\u%1 set Param2=MyName\u%2 echo Param1:%Param1%echo Param2:%Param2%endlocalCool它现在仅适用于您的第一个解决方案..调用Strip\u Batch.Batch%%i!你的名字!。。。。我在第二批脚本中犯了一个错误。非常感谢:-)
call Strip_Batch.bat "%%i" "!Stripped_Name!"