遍历以特定字母开头的目录并执行批处理脚本
Iterate through directories beginning with specific letter and execute batch script
我有很多以 UT_ 开头的目录(UT_abc、UT_def、UT_ghi、...)。
我想进入这些目录中的每一个并执行一个命令(一个生成文件)。我试过这个:
FOR /f %%p IN ("UT_*") DO make "%%p" /s /q
但是没用。此外,在这些 UT_xyz 个目录中的每个目录中,都存在一个目录和内容。例如:
UT_abc\directoryabc\makefile
UT_def\directorydef\makefile
UT_ghi\directoryghi\makefile
.....
有什么想法吗?
目前您是 parsing 文字字符串 "UT*"
。
使用normal directory enumeration并将路径正确传递给make
:
FOR /d %%p IN (UT_*) do FOR /d %%s IN (%%p\*) do make --directory "%%s" /s /q
或将 workdir 更改为该目录:
FOR /d %%p IN (UT_*) do FOR /d %%s IN (%%p\*) do pushd "%%~dpnxs" & make /s /q & popd
我有很多以 UT_ 开头的目录(UT_abc、UT_def、UT_ghi、...)。 我想进入这些目录中的每一个并执行一个命令(一个生成文件)。我试过这个:
FOR /f %%p IN ("UT_*") DO make "%%p" /s /q
但是没用。此外,在这些 UT_xyz 个目录中的每个目录中,都存在一个目录和内容。例如:
UT_abc\directoryabc\makefile
UT_def\directorydef\makefile
UT_ghi\directoryghi\makefile
..... 有什么想法吗?
目前您是 parsing 文字字符串 "UT*"
。
使用normal directory enumeration并将路径正确传递给make
:
FOR /d %%p IN (UT_*) do FOR /d %%s IN (%%p\*) do make --directory "%%s" /s /q
或将 workdir 更改为该目录:
FOR /d %%p IN (UT_*) do FOR /d %%s IN (%%p\*) do pushd "%%~dpnxs" & make /s /q & popd