.BAT将Excel文件复制到同一文件夹中并重命名

时间:2017-02-01 17:19:56

标签: batch-file

我想创建一个.bat来复制同一文件夹中的几个excel文件,但要重命名它们: 将此excel文件复制到同一目录中 C:\ Funds \ Report 12-16 重命名它 C:\ Funds \ Report 01-17

将此excel文件复制到同一目录中 C:\ Funds2 \ Report2 12-16 重命名它 C:\ Funds2 \ Report2 01-17

2 个答案:

答案 0 :(得分:0)

重要提示:我认为你的文件张力是“.xls”

@echo off
md temporary
xcopy "%CD%\Report 12-16.xls" "%CD%\temporary"
ren "%CD%\temporary\Report 12-16.xls" "report 01-17.xls"
xcopy "%CD%\temporary\Report 01-17.xls" "%CD%"
del "%CD%\temporary\Report 01-17.xls"
xcopy "%CD%\Report2 12-16.xls" "%CD%\temporary"
ren "%CD%\temporary\Report2 12-16.xls" "Report2 01-17.xls"
xcopy "%CD%\temporary\Report2 01-17" "%CD%"
del "%CD%\temporary\Report2 01-17.xls"
rd /Q temporary

答案 1 :(得分:0)

听起来好好利用批次FOR command。使用FOR,您可以遍历匹配给定模式的文件,提取文件名的一部分并使用它们来构建要执行的命令。

假设文件都遵循您在问题中指明的模式,即<name> <mm-yy>。xlsx,那么您可以在批处理文件'new_month.cmd'中使用以下内容:

FOR /F "delims= " %%B IN ('dir /b *%1.xlsx') DO copy "%%B %1.xlsx" "%%B %2.xlsx"

并使用'new_month.cmd 12-16 01-17'从命令行调用它。

该命令查找与* 12-16.xlsx匹配的所有文件,在''由'delims ='定义的''字符上拆分文件名,并使用结果中的第一个标记使用日期字符串将旧文件复制到新文件%1和%2作为参数提供给命令行上的批处理文件。

请注意,您也可以在命令行上直接执行此操作(无需批处理文件),如下所示:

FOR /F "delims= " %B IN ('dir /b *12-16.xlsx') DO copy "%B 12-16.xlsx" "%B 01-17.xlsx"
相关问题