批处理文件中包含日期的目录

时间:2017-04-20 06:17:34

标签: batch-file cmd

我正在尝试创建一个批处理文件,但是我已经陷入了今天的目录必须到来的部分。这时我得到了:

C:\预防性维护\ 07 LogFiles \ Workflow

但我想得到:

C:\预防性维护\ 07 LogFiles \ Workflow \ dateoftoday

今天的日期应该是YYYY-MM-DD。

Beneath是我所拥有的一段代码,如果有人能够适应这一原因,那将是非常有帮助的。我现在没有线索。

 @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%\*"

2 个答案:

答案 0 :(得分:0)

这是你在寻找有关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。语法有点不寻常,但它更具弹性,并且有其他选项使其更适合在批处理文件中运行。

答案 1 :(得分:0)

所以这是代码,它让我想要的批处理文件与想要的目录!

@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,你把我推向了正确的方向!