我需要幫助來理解以下批處理腳本結構:
這被命名為 Profile_something_schedule.bat
call somePath\lib.cmd :someLabel reqPath
call somePath\lib.cmd :someLabel reqKey
%reqPath% "%~someFileName" /vv_pwd=%reqKey% /bProfile_something_schedule /min
我很難理解為什么這個腳本有效。
- 我不知道為什么第 3 行有效。產生的行為是運行 someFileName。我將其理解為將檔案作為一個行程啟動。那為什么不需要啟動命令呢?我沒有看到任何批處理檔案說您可以通過撰寫路徑檔案名來簡單地運行檔案。
- 我不明白“%~someFileName”的語法。從在線搜索幾乎每個來源都會向您顯示批處理呼叫引數表,例如 %~1 擴展 %1...、%~f1 以其他方式擴展 %1 等。所有這些都涉及來自0 到 9 對應引數位置。但是,我找不到任何合法的 %~someString 規范。someFileName 字串中沒有引數位置資訊,它是一個 filename.extension 字串。盡管如此,這條線很可能正在嘗試運行這種格式。
- “/vv_pwd=%reqKey% /bProfile_something_schedule”是什么意思?在之前呼叫的 lib.cmd 中,有變數 reqPath 和 reqKey ,我很確定它正在嘗試將 reqPath 和 reqKey 的值從 lib.cmd 傳遞到這里的變數中,然后我猜它正在嘗試使用reqKey 值作為引數,它是運行檔案所需的密碼。檢查檔案,它包含一些付費軟體特定格式的腳本,里面只有變數名v_pwd,沒有vv_pwd。我不知道 /bProfile_... 的用途。沒有 /b 的部分正是這個批處理檔案的名稱。但與 /b 一起我不知道它是什么意思。/v 和 /b 對我來說看起來像是某種選項,但我看不到任何規范解釋,因為沒有命令以第 3 行開頭,只是一些路徑。我猜 /min 選項是指最小化的啟動視窗,這是命令啟動的一個選項,但沒有 /v 選項。start 中的 /B 表示啟動應用程式而不創建視窗,如果您一開始不打算創建視窗,則 /min 是完全沒有必要的。并且直接使用 /B 后跟 Profile_something_Schedule 的一些字串是沒有意義的。
僅供參考,lib.cmd 以 call %* 開頭,我認為這是嘗試呼叫所有傳遞的引數并假設這些引數實際上是可以呼叫的批處理檔案。我的另一個想法是第二行呼叫與第三行連接,因此第三行可能不需要命令。但我無法理解它。someFileName 不是 Batch 擴展名,所以我懷疑它可以被呼叫,因為呼叫檔案說它是用于批處理程式的。如果我想運行非批處理程式,我需要使用 start 嗎?
非常感謝您的幫助!
uj5u.com熱心網友回復:
該變數
pathext包含一個以分號分隔的可執行檔案名串列,可以作為擴展名附加到myexecutable. 如果批處理行上的第一個字串不是cmd內部命令(如set等for),則依次cmd嘗試查找myexecutable每個擴展名pathext,首先在當前目錄中,然后在path(另一個分號分隔的目錄串列)并運行找到的名字,如果沒有找到則失敗。第一個字串也可能有Associated擴展名,然后運行擴展名所在的應用程式associated(如默認.txt運行)notepad我也沒有,而且我看不出即使知道正在執行的實際
%reqPath%字串是什么也會有所幫助。for /?從提示中查看有關其他運算子的更多檔案-~或搜索 SO 以了解數千種用途。vv_pwd=%reqKey%:被前一行明顯回傳%reqKey%的變數的值替換。在 Windows 中用于表示“這是可執行檔案的開關引數”,因此很明顯,并且對可執行檔案有一些意義。完全是任何人的猜測。reqKey//vv_pwd=[the contents of reqKey]/bProfile_something_schedule/min%reqPath%
lib.cmd第一行的事實call %*意味著它lib.cmd包含一個例程庫。由于call您顯示的每個都是形式:string1 string2,因此執行的結果命令將是call :string1 string2. call :string1將呼叫包含在“lib.cmd”中的例程,標簽string1:提供string2(并且可能可選地string2 string3...作為引數。顯然,string2是lib.cmd放置所需資料的變數的名稱。
如果沒有:,string1將是任何cmd可以使用 (1) 中的方法定位的可執行檔案。它不必是一個批次,但通常是一個批次。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/492136.html
標籤:批处理文件
