假设我有一个这样的目录结构,
\folder 1\
\folder 1\folder A\
\folder 2\
\folder 2\folder B\
等等。
每个目录中都有文件*.abc
和*.xyz
。对于目录下的每个*.abc
或文件,我需要以这种方式运行并保存其结果,*.xyz
program.exe
program.exe -argumen1 -argument2 [*.abc or *.xyz] >> Text.txt
我的问题是如何在 Windows CMD 下用一个命令执行此操作?看起来for
我应该使用这个,但是内置的帮助指南对我来说相当混乱。
答案1
我该怎么做呢?
每个目录中都有文件 *.abc 和 *.xyz。对于目录下的每个 *.abc 或 *.xyz 文件,我需要运行“program.exe”并以这种方式保存结果...
批处理文件(test.cmd):
@echo off
setlocal
for /f "usebackq" %%i in (`dir /b /s *.abc *.xyz`) do (
program.exe -argument1 -argument2 %%i >> Text.txt
)
)
endlocal
命令行:
for /f "usebackq" %i in (`dir /b /s *.txt *.cmd`) do @echo program.exe -argument1 -argument2 %i >> Text.txt
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 目录- 显示文件和子文件夹的列表。
- 对于/f- 循环命令以执行另一个命令的结果。