如果已存在同名,则批量文件重命名提取的文件

时间:2014-05-27 15:41:42

标签: command-line cmd winzip

我在一家金融机构工作,从外部来源提取报告。我有一个非常基本的批处理文件,它检查任何zip文件的文件夹,将它们提取到不同的位置,并将zip文件移动到" old"提取后的文件夹。

"C:\Program Files\WinZip\WZUNZIP.EXE" -d -o -sXXXXXXXXX C:\SFTP\ReportingAnalytics\Accounting\*.zip \\servername\Share2\Reporting_Analytics\Accounting\
MOVE C:\SFTP\ReportingAnalytics\Accounting\*.zip C:\SFTP\ReportingAnalyticsOld\Accounting

在这一周,这很有效。问题发生在周末。这些报告每天都会发生......不幸的是,每天都有相同的文件名。因此,在本周,有人正在处理报告,没有问题。在周末,没有人报告并且他们被覆盖(星期六早上星期五的报告会在周日及周六的报告中被覆盖)。

提取时是否有一种简单的方法可以自动重命名这些文件?即AccountingReport1,AccountingReport2等......

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir\one"
FOR %%a IN ("%sourcedir%\*.zip") DO (
 ECHO("C:\Program Files\WinZip\WZUNZIP.EXE" -d -o -sXXXXXXXXX C:\SFTP\ReportingAnalytics\Accounting\%%a \\servername\Share2\Reporting_Analytics\Accounting\%%~na\
)

GOTO :EOF

您需要更改sourcedir的设置以适合您的具体情况。

所需的WZUNZIP命令仅用于ECHO用于测试目的。 在您确认命令正确无法后,将ECHO("...WZUNZIP更改为"...WZUNZIP以实际创建目录并解压缩文件。

你没有告诉我们档案中有多少文件/目录或者说明了他们的名字,你使用-d -o意味着有一个完整的泥潭,因此这种方法是提取每个.zip将文件发送到\\servername\S...s\Accounting

下的新目录 nameofzip