我正在尝试创建一个批处理文件,但是我已经陷入了今天的目录必须到来的部分。这时我得到了:
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%\*"
答案 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,你把我推向了正确的方向!