2014-09-23 51 views
0

我的PowerShell腳本有一個參數。它是由一個工具調用的,該工具爲它提供了參數。該參數包含特殊字符,例如',「和%。對於特殊字符,PowerShell希望參數被單引號或雙引號包圍。如果參數同時包含單引號和雙引號,該怎麼辦?沒問題。單引號,用兩個單引號代替一個參數裏面如果加了雙引號,用兩個雙引號,而不是一個參數裏面帶有無轉義或加倍引號的參數

問題:我不能修改參數把它傳遞給前腳本,即我不能在參數中加倍單引號/雙引號。有什麼我可以做的嗎?

-Rohan。

編輯#1: 我無法修改參數的原因是它通過工具自動傳遞到腳本。 編輯#2: 參數是一個密碼,所以我需要接受它並將其作爲安全字符串存儲在腳本中。

+1

你能不能給我們多一點去?什麼通過了這個論點?你爲什麼不能修改這個論點? – TheMadTechnician 2014-09-23 16:48:41

+0

完成。請參閱編輯。 – GigaRohan 2014-09-23 16:53:07

+1

您可以嘗試將參數傳遞給解析器/助手,做你必須做的事情,然後用新的參數調用PowerShell。 – tfrascaroli 2014-09-23 16:55:21

回答

0

一種選擇是把它作爲一個base64編碼字符串,然後把它在腳本解碼:

Using Powershell -encodedcommand to pass parameters

+0

但是爲了對它進行編碼,我仍然需要接受參數作爲參數......我知道我的原始腳本將成爲'孩子'腳本。但是'父'腳本,編碼和調用'孩子'腳本的腳本需要接受這個觀點,所以我們又回到了同樣的問題。 – GigaRohan 2014-09-23 18:21:06

+0

你確定你必須接受參數作爲參數嗎?你可以編寫你的腳本來通過管道接受來自「工具」的輸入,繞過解析器嗎? – mjolinor 2014-09-23 18:54:16