批量复制和重命名文件

时间:2016-07-20 18:56:02

标签: windows batch-file

我需要将一些目录从网络复制到我的计算机,并从复制文件夹中的文件中删除扩展名.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:\上,是否可以不运行副本?谢谢。

1 个答案:

答案 0 :(得分:2)

如何将重命名限制为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 - 将文件和/或目录树复制到另一个文件夹。