【问题标题】:Batch file to copy and rename files from multiple directories用于从多个目录复制和重命名文件的批处理文件
【发布时间】:2016-12-03 16:22:21
【问题描述】:

我之前曾为我的问题寻找过答案,但目前还没有具体回答。请参阅:Using xcopy to copy files from several directories to one directoryBatch file to copy files from one folder to another folder

在一个目录中 (Data) 我专门命名了多个目录,例如(SIAE02203) 包含通用命名的 .JPEG 文件 (plot.jpeg)。我希望创建一个能够遍历每个目录的批处理文件,找到、复制并用父文件夹名称重命名plot.jpeg 文件。

所以plot.jpeg 变成了SIAE02203-plot.jpeg

目录结构类似于:Data\SIAE02203\plots\plot.jpeg。 我希望将重命名的文件复制到Data\Output

这可能吗?

【问题讨论】:

    标签: batch-file xcopy


    【解决方案1】:

    这是此任务的简短批处理代码:

    @echo off
    pushd "C:\Temp\Data"
    if not exist "Output\*" md Output
    for /D %%D in (*) do (
        if /I not "%%D" == "Output" (
            for %%J in ("%%D\plots\*.jpeg") do (
                copy /B /Y "%%~fJ" "Output\%%D-%%~nxJ" >nul
            )
        )
    )
    popd
    

    在第二行指定目录Data的路径。

    批处理文件首先创建目录Output(如果尚不存在)。

    下一个命令FOR用于处理目录Data的每个子目录上的更多命令。使用 IF 条件跳过子目录 Output

    内部 FOR 搜索外部 FOR 在子目录 plots 中找到的每个子目录,例如 SIAE02203\plots for *.jpeg 文件,并将所有找到的 JPEG 文件复制到目录Output.

    命令COPY的成功消息被重定向到设备NUL来抑制它。

    输入目录C:\Temp\Data的示例结构:

    • SIAE02203
      • 地块
        • 备份
          • backup_plot.jpeg
        • 图片.jpg
        • plot.jpeg
      • 图片
        • 图片.jpg
        • plot.jpeg
      • photo.jpeg
    • TIAE03208
      • 地块
        • another.jpeg
        • ignored.jpg
        • plot.jpeg

    批量执行后C:\Temp\Data的内容:

    • 输出

      • SIAE02203-plot.jpeg
      • TIAE03208-another.jpeg
      • TIAE03208-plot.jpeg
    • SIAE02203

      • 地块
        • 备份
          • backup_plot.jpeg
        • 图片.jpg
        • plot.jpeg
      • 图片
        • 图片.jpg
        • plot.jpeg
      • photo.jpeg
    • TIAE03208
      • 地块
        • another.jpeg
        • ignored.jpg
        • plot.jpeg

    要了解所使用的命令及其工作原理,请打开命令提示符窗口,在其中执行以下命令,并仔细阅读每个命令显示的所有帮助页面。

    • copy /?
    • echo /?
    • for /?
    • if /?
    • popd /?
    • pushd /?

    有关>nul 的解释,另请参阅有关Using command redirection operators 的Microsoft 文章。

    【讨论】:

    • 感谢@Mofi 的深入和周到的回复!我有超过 1000 张图像要为当前的研究项目提取,这太不可思议了!
    猜你喜欢
    • 1970-01-01
    • 2014-11-12
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    相关资源
    最近更新 更多