我有三个不同的文件扩展名与命令行程序一起使用。 该程序的语法是program.exe file1.bm file1.pal file1.ppm
.
它需要file1.bm
和file1.pal
并将它们转换为ppm
文件。
我试过使用for %%A in (.bm .pal .ppm) do call program.exe %%A
,但它不起作用,因为它不能代表所有三个扩展名%%A
。
如何使用FOR
(或替代方法)创建批处理文件以填写上述语法所需的命令?
谢谢
您可以使用for /F
和dir /B
来获得所需的结果。 首先,我们获取与模式匹配的每个文件(*.bm
),检查另一个文件是否存在,然后执行命令。
for /F "tokens=*" %%F IN ('dir /B *.bm') DO (
%== Found a file to work with ==%
if exist "%%~nF.pal" (
%== Validated other file ==%
bm2ppm "%%~F" "%%~nF.pal" "%%~nF.ppm"
)
)
但请注意,如果您的文件名中有特殊字符,则需要使用chcp Codepage
调整代码页
如果您不介意以递归方式搜索它,则可以改用for /R %%F IN (*.bm) DO (
。
请务必浏览for /?
和dir /?