![批处理文件:在文件系统中搜索特定文件夹,并对每个找到的文件夹执行命令](https://linux22.com/image/1551698/%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%EF%BC%9A%E5%9C%A8%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%B8%AD%E6%90%9C%E7%B4%A2%E7%89%B9%E5%AE%9A%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%8C%E5%B9%B6%E5%AF%B9%E6%AF%8F%E4%B8%AA%E6%89%BE%E5%88%B0%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4.png)
I am new to batch files and need some help. I want to do the following.
我创建了一个批处理文件,它在文件系统中查找文件夹“Recordings”,并将结果写入文本文件 (results.txt)。之后,它在结果中查找字符串“Directory”。然后我想将 findstr 中的每一行 (每个路径) 与我正在使用的工具的执行命令合并。
批处理文件.bat:
@echo off
dir /S Recordings > C:\testing\results.txt
findstr Directory C:\testing\results.txt
PAUSE
输出如下所示:
C:\testing>batchfile.bat
Directory of C:\testing\Scenarios\Default
Directory of C:\testing\Scenarios\test1
Press any key to continue . . .
现在我想将此输出的每一行与我的执行命令合并:
tool.exe -parameter C:\testing\Scenarios\Default\Recordings
tool.exe -parameter C:\testing\Scenarios\test1\Recordings
答案1
我希望此输出的每一行都与我的执行命令合并
使用以下批处理文件:
@echo off
setlocal
for /f "usebackq" %%i in (`dir /a:d /b /s ^| findstr "Recordings"`) do (
tool.exe -parameter %%i
)
endlocal
进一步阅读
- Windows CMD 命令行的 AZ 索引
- Windows CMD 命令的分类列表
- 目录- 显示文件和子文件夹的列表。
- 对于/f- 循环命令以执行另一个命令的结果。
- 查找字符串- 在文件中搜索字符串。