2016-03-07 525 views
1

我試圖創建一個腳本來獲取右鍵單擊的文件/目錄的名稱,對其進行修改並將修改後的字符串放在剪貼板上。如何在Powershell中處理包含圓括號的變量

只要字符串不包含圓括號,它就可以很好地工作。如果是這樣,我在嘗試使用它時遇到錯誤。例如。如果的$ args包含 「C:\文件(草案).PDF」,我嘗試使用

Write-Host $args 

我收到以下錯誤呼應它:

The term 'draft' is not recognized as the name of a cmdlet, function, script file, or operable program.

如何處理變量在這種情況下包含括號?

+2

你可以發表你的整個腳本? –

+0

爲了簡單起見,我們假設這是整個腳本,只是回顯命令行參數,這將是用戶右鍵單擊的任何文件的名稱。如果它包含括號,這將不起作用。我該如何解決這個問題? – Ingo

+0

我仍然無法重現,因此不能幫助你,如果你不張貼你的代碼。 –

回答

0

使用單個quoatation標記。此代碼的工作:

$args = 'c:\document(draft).pdf' 

if ($args -contains 'C:\Document(draft).pdf') 
{ 
Write-Host $args 
} 

輸出:

c:\document(draft).pdf 
+0

此代碼也適用於雙引號...... –

+0

這不起作用,因爲文件名不知道,它可以是任何文件名,右鍵單擊。 – Ingo

+0

你能提供多一點的代碼嗎?在我的環境中,這是行得通的。你使用哪個PS版本? – Martin

相關問題