我正在尝试创建一个批处理文件,但我被困在包含今天日期的目录所在的位置。此时此刻我得到了:
C:\预防性维护\07 LogFiles\Workflow
但我想要得到:
C:\预防性维护\07 LogFiles\Workflow\dateoftoday
今天的日期应为YYYY-MM-DD格式。
下面是我拥有的一段代码,如果有人能适应这个原因,那将是非常有帮助的,因为我目前没有线索。
@echo on
set LogFilePath=C:\ProgramData\Proficy\Logs
set OutputFilePath=C:\Preventive Maintenance\07 LogFiles\Workflow
set X=
for /f "skip=1 delims=" %%x in ('wmic os get localdatetime') do if not defined X set X=%%x
set DATE.YEAR=%X:~0,4%
set DATE.MONTH=%X:~4,2%
set DATE.DAY=%X:~6,2%
set mydate=%DATE.YEAR%-%DATE.MONTH%-%DATE.DAY%
mkdir "%OutputFilePath%"
cd /d %LogFilePath%
xcopy /s /f /y "%LogFilePath%\ProficyClient.log" "%OutputFilePath%\%mydate%\*"
xcopy /s /f /y "%LogFilePath%\SOAServer.log" "%OutputFilePath%\%mydate%\*"发布于 2017-04-20 14:26:09
这就是您要查找的关于mydate环境变量的内容吗?
set mydate=%DATE:~10,4%-%DATE:~4,2%-%DATE:~7,2%我可能会在mydate之后添加你的set OutputFilePath,然后让OutputFilePath成为整个东西。
set OutputFilePath=C:\Preventive Maintenance\07 LogFiles\Workflow\%mydate%最后,我建议使用robocopy,而不是xcopy。语法有点不同寻常,但它的弹性更强,并且有其他选项,使其更适合在批处理文件中运行。
发布于 2017-04-20 14:40:21
这就是让我得到所需目录的批处理文件的代码!
@echo on
set LogFilePath=C:\ProgramData\Proficy\Logs
set X=
for /f "skip=1 delims=" %%x in ('wmic os get localdatetime') do if not defined X set X=%%x
set DATE.YEAR=%X:~0,4%
set DATE.MONTH=%X:~4,2%
set DATE.DAY=%X:~6,2%
set mydate=%DATE.YEAR%-%DATE.MONTH%-%DATE.DAY%
set OutputFilePath=C:\Dimensys Preventive Maintenance\07 LogFiles\Workflow\%mydate%
mkdir "%OutputFilePath%"
cd /d %LogFilePath%
robocopy /s /f /y "%LogFilePath%\ProficyClient.log" "%OutputFilePath%\%mydate%\*"
robocopy /s /f /y "%LogFilePath%\SOAServer.log" "%OutputFilePath%\%mydate%\*"谢谢@theglossy1,你把我推向了正确的方向!
https://stackoverflow.com/questions/43511623
复制相似问题