1

我正在尝试从目录中获取文件,并希望使用批处理脚本将文件名设置为变量。

这是我的代码。但它总是为变量设置相同的值,任何机构都可以提供解决方案

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%

这里转储和键变量总是设置为相同的值

4

1 回答 1

2

您需要使用延迟扩展。您已经启用它,您只需要将%'s替换为!'s

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%
于 2012-10-05T08:02:12.627 回答