如何使用 Windows 命令提示符连接每个子目录中的文件

如何使用 Windows 命令提示符连接每个子目录中的文件

我是个新手,一个研究生,而且很沮丧!!我有大量包含子目录的目录,每个子目录都包含一堆 .irf 文件(这些是 DVR 类型的文件)。

我正在尝试使用命令提示符让每个子目录包含一个与该子目录中的 .irf 关联的 .irf 文件。理想情况下,新文件将具有子目录的名称。

我可以毫无问题地将它们连接起来,逐个进入每个子文件夹:

copy /b *.irf concat.irf

为了使其对每个子目录起作用,我一直尝试使用 for 命令,并将复制命令放入批处理文件(copyIRF.bat)

for /d /r %i in (*.*) do call copyIRF.bat %i )

这会将名为 concat.irf 的连接文件放入父目录中,该目录是子目录 #1 中的文件的组合。

但是,当它连接第二个目录中的文件时,它会将这些文件附加到父文件夹中的同一个文件 concat.irf,而不是将生成的文件放入各自的子目录中。

我想要的是:

Directory
  Subdir1
    *.irf
    *.irf
    *.irf...etc.
    Subdir1concat.irf
  Subdir2
    *.irf
    *.irf
    *.irf ...etc..
    Subdir2concat.irf

我真的非常感谢任何帮助!!

(我使用 Win7 64 位专业版)

答案1

下一个循环命令可以帮助:

for /F "delims=" %i in ('dir /B /S /AD') do @call copyIRF.bat "%i"

如果你的copyIRF.bat定义如下:

==>type copyIRF.bat
@echo OFF
pushd "%~1"
if exist *.irf (
    del "%~nx1concat.irf"
    copy *.irf "%~nx1concat.irf"
    echo debug copy *.irf "%~nx1concat.irf"
)
popd
exit /B

资源(必读):

相关内容