我想创建一个批处理文件,它读取特定目录中的前 10 个文件名,然后将路径设置为 10 个不同的变量。举个简单的例子,路径是c:\test,里面会有很多名为file1.tif、file2.tif等的文件。我想将变量设置为filepath1
等于第一个文件的路径,对于前 10 个文件,这将是c:\test\file1.tif,依此类推。这是代码:
@echo off
cd C:\TEST
setlocal ENABLEDELAYEDEXPANSION
FOR /f "delims=|" %%a IN ('dir /b') DO (
CALL SET /a x = !x! +1
if !x! == 1 (
CALL SET /a filepath!x!="C:\TEST\%%a"
)
)
echo %filepath1%
echo %filepath2%
pause
goto EOF
当我运行程序时,它似乎很好地执行了 FOR 循环,但是filepath1
它只显示0
并且它不显示任何filepath2
. 我相信问题出在if !X! == 1
和设置filepath!x!
. 如果我更改与 相关的任何内容!x!
,它会中断循环。我该怎么做才能正确设置变量并限制循环仅对 10 个文件执行操作?