批处理文件在目录中查找特定文件

时间:2012-10-05 06:05:01

标签: batch-file

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

这是我的代码。但它始终为变量设置相同的值  可以任何机构给出解决方案

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变量总是设置为相同的值

1 个答案:

答案 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%