运行 每个子文件夹中的命令(或批处理文件)

Run command (or batch file) in every subfolder

我想要 运行 一个脚本(我已经在 .bat 文件中了)

"c:\Flac\flac.exe" -8 *.wav --verify --delete-input-file --replay-gain

在主文件夹的所有子文件夹中。

如果我将此 .bat 文件和 copy/paste 放入任何文件夹并 运行 它,效果很好,我得到了预期的结果。但是,如果我有一个包含 50 个文件夹的主文件夹,我想在其中执行此操作,则需要永远复制和粘贴该文件 50 次。

一直在尝试找出使用(我假设)命令的语法 FOR /R 但似乎无法正确处理。

例如,假设目录树是这样的:

c:\
     FLAC
          flac.exe
          flac BATCH.bat
     Music to be converted
          1
          2
          3

我想 运行 C:\Music to be converted

的每个子文件夹中的 C:\FLAC\flac BATCH.bat

我试过了

FOR /R "C:\Music to be converted" %X IN (*.wav) DO "C:\FLAC\flac BATCH.bat" "%X"

但这不起作用。我需要 FOR /R 命令来浏览子文件夹,不是吗?

根据我的评论。

从命令行:

For /D %A In ("C:\Music to be converted\*") Do @(PushD "%~A" & "C:\Flac\flac.exe" -8 *.wav --verify --delete-input-file --replay-gain & PopD)

或作为批处理文件:

@Echo Off
For /D %%A In ("C:\Music to be converted\*") Do (PushD "%%~A"
    "C:\Flac\flac.exe" -8 *.wav --verify --delete-input-file --replay-gain
    PopD)