[英]Passing file name variable in .bat file
我的代碼如下
set log_file = Automation_log.log
call :main > %log_file%
exit /b
:main
call: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
這也會給出錯誤,因為系統找不到指定的路徑。
這是使用非本地/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
.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.