set语句似乎不适用于我的批处理文件
但我真的不明白这个解释。
这是我的剧本......
for /R /d %%f in (\Product\Database\SQL\Project\Model\Scripts\*) DO (REM echo %%fSET !LOAD_FILE_FILTER= %%f\*.sqlecho file: %!LOAD_FILE_FILTER%CALL %!BATCH_FILE% -u %!USER_NAME% -p %!PASSWORD% -s %!SERVER_NAME% -d %!DATABASE_NAME% -f %!LOAD_FILE_FILTER% -o %!LOG_FILE%IF %!EchoErrors%==1 ( ECHO [ TYPE %!LOG_FILE% ECHO ])
)
echo始终打印文件:* .sql,我传递此var的脚本总是抱怨LOAD_FILE_FILTER为空。
我尝试setlocal EnableDelayedExpansion
按照文章中的建议添加,但它没有解决问题。将echo file: %!LOAD_FILE_FILTER%
始终打印在我运行的目录中的最后一个子目录。将echo %%f
始终打印正确的值。
什么是'!' 变量背后为我做什么?
另外,有人可以向我解释两者之间的区别
SET!VAR和SET VAR
%VAR &&!VAR&!VAR!%% VAR
ABOUTYOU
慕田峪9158850