批处理文件每晚运行 exe、创建文件、保存并发布到新文件夹中

批处理文件每晚运行 exe、创建文件、保存并发布到新文件夹中

这是一篇转帖,我把它放在 stack exchange 上,有人说它更适合超级用户网站。不确定有什么区别。第一次访问这两个网站...但还是发在这里。~Cheers

我最多只能算是一个新手,因为我的工作在不断发展,而且老板不会提供培训。因此,我有多个批处理文件代码,这些代码读起来像这样或非常相似,最终运行夜间报告并将 pdf 文件放入我的共享驱动器中。

我的批次读起来像这样,有五份报告...我在下面输入了两份。

R:\Simply\Simply.exe /u:username /p:password /rpt:"Daily Report" /pgp:Custom /pgs:pdf /el:R:\reports\str001\DailyReports /s

R:\Simply\Simply.exe /u:username /p:password /rpt:"Negative Report" /pgp:Custom /pgs:pdf /el:R:\reports\str001\DailyReports /s

每天早上我都必须以昨天的日期创建一个新文件夹,并将生成的所有文件移动到该文件夹​​中。

我应该注意到,这批需要在 winxp 和 win7 上运行,所以从我读过的内容来看需要考虑到这一点。

我已经阅读并尝试了这里的几篇帖子。我不确定将代码放在哪里,如何将其插入到现有代码后面、前面、每一行。再次,新手寻求一些建议。见鬼,我甚至尝试运行一个新的 .bat 文件,只创建一个基于此处其他帖子的新文件夹代码......但我无法让它们工作。我可以在这里链接它们,但这似乎是在浪费时间。相信我,我试过解决这个问题......我喜欢解决问题和学习,但我迷路了。请帮忙

我希望批处理文件创建一个以昨天的日期为日期的文件夹,格式为 YYYY_MM_DD,然后在运行时自动将文件保存到该文件夹​​中,而不必每天一遍又一遍地移动它们。

注意:如果日期存在,我不想覆盖数据,但想将文件放到该位置。

答案1

此解决方案假定您的报告为 PDF 格式,并且它们是报告文件夹中唯一的 PDF。此外,此解决方案的部分内容改编自:

https://stackoverflow.com/questions/20796749/re-naming-a-file-name-to-include-yesterdays-date-using-command-prompt/20798129#20798129

新的批处理文件内容:

@ECHO OFF

R:\Simply\Simply.exe /u:username /p:password /rpt:"Daily Report" /pgp:Custom /pgs:pdf /el:R:\reports\str001\DailyReports /s

R:\Simply\Simply.exe /u:username /p:password /rpt:"Negative Report" /pgp:Custom /pgs:pdf /el:R:\reports\str001\DailyReports /s

... (more of your report stuff goes here)

SET day=-1
ECHO >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s)
ECHO >>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2)
FOR /f %%a IN ('cscript /nologo "%temp%\%~n0.vbs"') DO SET "result=%%a"
DEL "%temp%\%~n0.vbs"
SET "YYYY=%result:~0,4%"
SET "MM=%result:~4,2%"
SET "DD=%result:~6,2%"
SET "date-yesterday=%yyyy%_%mm%_%dd%"

IF NOT EXIST %date-yesterday%\ (
    MD %date-yesterday%
)

MOVE *.PDF %date-yesterday%

相关内容