我有一个目录DIR1,DIR2 ... DIRn的列表,每个目录中都有一个文件:FILE1,FILE2,... FILEn。 我想在每个文件上启动一个make:
cd %%DIR1
make.exe %%FILE1
如果文件名始终相同,那将很容易:
for %%x in (
DIR1
DIR2
...
DIRn
) do (
cd %%DIR1
make.exe FILE
rem my dirs are two levels deep
cd ..\..
)
有没有一种方法来创建带有耦合元素的列表,以便do()的每个实例都选择正确的列表?
答案 0 :(得分:1)
我最终用文本
创建了文件EXAMPLE.TXTDIR1 FILE1
DIR2 FILE2
...
DIRn FILEn
此时
for /F "eol=; tokens=1,2* " %%i in ( EXAMPLE.TXT ) do ( @echo %%i %%j )
贯穿所有行,%% i设置为DIRx,%% j设置为FILEx
答案 1 :(得分:1)
@echo off
setlocal
for %%A in (
"DIR1|FILE1"
"DIR2|FILE2"
"DIRn|FILEn"
) do for /f "tokens=1-2 delims=|" %%B in ("%%~A") do (
echo pushd "%%~B"
echo make "%%~C"
echo popd
)
可以使用2个for
循环来实现。
DIRn
和FILEn
可以使用定界符配对,例如
|
不在路径中使用。第一个循环将获取每个字符串
与双引号配对。第二个循环将字符串拆分为
DIRn
字符串和FILEn
字符串的2个标记。
代码中的回显用于测试输出,可以替换 并根据需要使用实际命令。