我正在嘗試將命名引數傳遞給在 Windows 中使用環境變數參考的批處理檔案。環境變數是 .bat 檔案的直接路徑,可以很容易地在 Powershell 中執行,使用$env:MY_VAR它可以迅速列印批處理的完整路徑。但是,如果我嘗試傳遞引數,Powershell 會抱怨意外令牌。我嘗試的是:
$env:MY_VAR -data some_data.txt -other more_data.txt
$env:MY_VAR --data some_data.txt --other more_data.txt
$env:MY_VAR --data=some_data.txt --other=more_data.txt
$env:MY_VAR -data=some_data.txt -other=more_data.txt
還有更多……我還嘗試將我的值封裝在引號中,以防它與它們的命名有關。這些都不起作用,但如果我這樣使用直接路徑:
FULL_PATH/program.bat -data some_data.txt -other more_data.txt
它會作業得很好。Powershell 是否以某種特定方式解釋環境變數,需要以不同方式傳遞引數?我的 Google 搜索沒有產生任何有用的結果,而且主要是人們試圖從批處理腳本中啟動 Powershell ......這不正是我想要的。我也遇到過 Powershell 的擴展,但這似乎是一個奇怪的解決方案。
歡迎和贊賞任何幫助。
uj5u.com熱心網友回復:
您需要使用&呼叫運算子告訴 powershell 您傳遞的字串是要呼叫的命令:
& $env:MY_VAR -data some_data.txt -other more_data.txt
有關更多詳細資訊,請參閱此頁面。
uj5u.com熱心網友回復:
環境變數只是一個字串。如果要執行變數中的內容,首先需要告訴 PowerShell 這就是您想要的。為此,您可以使用&.
& $env:MY_VAR some_data.txt more_data.txt
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/481163.html
