簡體   English   中英

在.bat文件中傳遞文件名變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM