我的代码如下所示
set log_file = Automation_log.log
call :main > %log_file%
exit /b
:main调用:main > %log_file%会产生语法错误。
您可能会想,为什么我不将日志文件名直接传递到>旁边,我这样做是因为我已经将日期和时间放在文件名中,并且它将被自定义。
通过下面的注释,下面是我的代码
@echo off
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
For /f "tokens=1-2 delims=/:" %%a in ("%TIME%") do (set mytime=%%a%%b)
set log_file = Automation_Log__%mydate%_%mytime%.log
call :main > "%log_file%"
exit /b
:main这也会导致错误,因为系统找不到指定的路径。
发布于 2019-11-21 15:19:14
下面是使用非本地/PC相关方法获得日期和时间的正确定义变量的脚本。这个示例应该只使用内容Test创建文本文件。
@Echo Off
Set "log_file="
For /F "Tokens=1-6Delims=/: " %%A In ('RoboCopy/NJH /L "\|" Null'
) Do If Not Defined log_file Set "log_file=Automation_Log__%%A%%B%%C_%%D%%E_%%F"
Call :Main>"%log_file%"
GoTo :EOF
:Main
Echo Test
Exit /B您没有指明预期的日期和时间格式,所以我使用了yyyyMMdd_hhmmss。如果希望更改,请重新排列4上的顺序,其中%%A=yyyy、%%B=MM、%%C=dd、%%D=hh、%%E=mm和%%F=ss。
https://stackoverflow.com/questions/58976564
复制相似问题