【问题标题】:Batch copy and rename files批量复制和重命名文件
【发布时间】:2016-07-20 18:56:02
【问题描述】:

我需要将一些目录从网络复制到我的机器上,并从复制的文件夹中的文件中删除扩展名.nary;所以文件myFile.doc.nary 将变为myFile.doc。我有以下 Windows 批处理文件,但如果批处理文件是从 c:\ 运行的,我不知道如何将重命名限制为两个文件夹:

xcopy /s \\some_server\MYFOLDER1 c:\MYFOLDER1\
xcopy /s \\some_server\MYFOLDER2 c:\MYFOLDER2\

for /r %%x in (*.nary) do (
    ren "%%x" *.
    )
pause

如何将重命名限制为c:\ 上的这两个文件夹?另外,如果文件夹已经在我机器的c:\ 上,是否可以不运行副本?谢谢。

【问题讨论】:

    标签: windows batch-file


    【解决方案1】:

    如何将重命名限制为c:\ 上的这两个文件夹?

    只需使用for /d 循环浏览目录。

    修改后的批处理文件:

    @echo off
    xcopy /s \\some_server\MYFOLDER1 c:\MYFOLDER1\
    xcopy /s \\some_server\MYFOLDER2 c:\MYFOLDER2\
    for /d %%x in (C:\MYFOLDER1 c:\MYFOLDER2) do (
      ren "%%x\*.nary" *.
      )
    pause
    

    另外,如果文件夹已经在c:\? 中,是否可以不运行副本

    在运行xcopy之前测试文件夹是否已经存在:

    修改后的批处理文件:

    @echo off
    if not exist C:\MYFOLDER1 echo xcopy /s \\some_server\MYFOLDER1 c:\MYFOLDER1\
    if not exist C:\MYFOLDER2 echo xcopy /s \\some_server\MYFOLDER2 c:\MYFOLDER2\
    for /d %%x in (C:\MYFOLDER1 c:\MYFOLDER2) do (
      ren "%%x\*.nary" *.
      )
    pause
    

    进一步阅读

    • An A-Z Index of the Windows CMD command line - 与 Windows cmd 行相关的所有内容的绝佳参考。
    • for /d - 有条件地对多个目录/文件夹执行命令。
    • if - 有条件地执行命令。
    • ren - 重命名一个或多个文件。
    • xcopy - 将文件和/或目录树复制到另一个文件夹。

    【讨论】:

      猜你喜欢
      • 2016-04-09
      • 1970-01-01
      • 1970-01-01
      • 2018-04-26
      • 2019-03-16
      • 2020-03-23
      • 2016-10-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多