[英]Calling powershell function with parameter from .cmd or .bat file
[英]Passing a semicolon as a parameter to a .bat file from both cmd and PowerShell
這個問題看起來很簡單,但即使在網上搜索了幾個小時后,我也無法找到解決方案......
我有一個批處理文件 test.bat
set MY_VARIABLE=%~1
echo %MY_VARIABLE%
關鍵是我想用分號作為輸入參數來調用這個程序,即.\\test.bat ";"
, 來自 cmd 和 Windows PowerShell。 雖然這在 cmd 中運行良好,但 PowerShell 似乎沒有得到任何輸入。 有什么辦法可以同時為兩者工作嗎?
這是因為命令行語法。 分號是多個分隔符之一,它將命令行拆分為單詞: a;b
將被解釋為兩個單獨的參數a
( %1
) 和b
( %2
)。
因此,需要報價。 由於 Powershell 對字符串文字使用引號(Powershell 在傳遞參數時會在后台自行重新引用),因此您需要將它們包含在字符串中:
.\test.bat '";"'
# or
.\test.bat "`";`""
或者正如@mklement0 指出的那樣, 停止解析符號--%
也是一個選項:
.\test.bat --% ";"
請注意,這是特定於 Powershell 語法的。
在 CMD 中,這就足夠了:
test.bat ";"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.