我正在尝试从目录中获取文件,并希望使用批处理脚本将文件名设置为变量。
这是我的代码。但它始终为变量设置相同的值 可以任何机构给出解决方案
echo on
setlocal EnableDelayedExpansion
for /f %%x in ('dir /b C:\backup_dir') do (
SET test=%%~nx
if "%test:~0,6%"=="kdc_db" (set DUMP=%%x)
if "%test:~0,6%"=="kdc_ke" (set KEYS=%%x)
)
echo %DUMP%
echo %KEYS%
这里dump和keys变量总是设置为相同的值
答案 0 :(得分:2)
您需要使用延迟扩展。您已启用它,只需将%
替换为!
echo on
setlocal EnableDelayedExpansion
for /f %%x in ('dir /b C:\backup_dir') do (
SET test=%%~nx
if "!test:~0,6!"=="kdc_db" (set DUMP=%%x)
if "!test:~0,6!"=="kdc_ke" (set KEYS=%%x)
)
echo %DUMP%
echo %KEYS%