DOS 命令行将文件移动到以上个月命名的文件夹

DOS 命令行将文件移动到以上个月命名的文件夹

我正在尝试在任务计划程序中创建一个任务,该任务将根据 pdf 文件中的日期(即上个月)自动将一些 pdf 文件移动到另一个文件夹中。我遇到的问题是,我不知道如何让命令行回滚到上个月。我使用相同的方法来创建文件夹,但任务设置为在上个月结束时运行。例如,一个任务在 10 月运行以创建当前月份 2010-10 的文件夹,另一个任务在 11 月运行,在 PDF 编译后将它们移动到 2010-10 文件夹。有什么想法吗?

我使用的日期参数是“%DATE:〜0,2%”,我尝试过“%DATE:〜0,2%-1”和“%DATE:〜0,2%-1”,批处理文件中的全文是“move [-Y] * .pdf P:\ CBO \ Physician Monthly Reports \%DATE:〜6,4%-%DATE:〜0,2%-1”

答案1

您的字符选择要求您的日期格式看起来像“MM-DD-YYYY”。此命令检索当前月份的数字并减去一并将其保存在名为的变量中prevmonth。如果上个月是十二月,它还会从年份中减去一:

set /a prevmonth=%DATE:~0,2% - 1
set yearprevmo=%DATE:~6,4%
if %prevmonth% equ 0 set /a yearprevmo=%yearprevmo%-1 & set prevmonth=12
move -Y *.pdf "P:\CBO\Physician Monthly Reports\%yearprevmo%-%prevmonth%"

请注意引号,因为目录名中有空格。

答案2

C:\>move /Y \\your Network server\PROD\PM\FileArchive\2011*.txt \\your Network server\PROD\PM\FileArchive\Documents

相关内容