2013-10-09 34 views
0

有關在下面的語句中正確地轉義&符號的快速問題,這只是命令行執行。如何正確地轉義執行語句中的&符號

& $CmdLine -f:passwordFile.txt /A:Coreplan /U:admin /D:BalSheet /R:global_General_Assets_P&E 

我已經嘗試了許多不同的報價迭代,沒有運氣。

在此先感謝!

回答

1

&符號不需要特殊轉義,如果它在單引號或雙引號字符串中。

& $CmdLine -f:passwordFile.txt /A:Coreplan /U:admin /D:BalSheet '/R:global_General_Assets_P&E' 

& $CmdLine -f:passwordFile.txt /A:Coreplan /U:admin /D:BalSheet "/R:global_General_Assets_P&E" 

應該工作。這是假設$cmdline只包含一個exe的路徑。確保$cmdLine不包含任何附加參數...

而且和Ansgar建議的一樣,如果這些方法不起作用,請提供錯誤詳細信息。

+0

這工作。我引用了引號,因爲這是一種我更加適應的格式。謝謝! –

0

我打算假設$CmdLine是您想要調用的可執行文件或批處理文件,並且該行的其餘部分是您想要發送到$ CmdLine的參數集。

你可以嘗試這樣的事情:

& $CmdLine "-f:passwordFile.txt" "/A:Coreplan" "/U:admin" "/D:BalSheet" "/R:global_General_Assets_P&E" 
+1

這將單個字符串參數傳遞給包含'-f:passwordFile.txt/A:Coreplan/U:admin/D:BalSheet/R:global_General_Assets_P&E的可執行文件' – latkin

+0

您是正確的,這使得答案混淆。我更正了更正的答案。重要的一點是,無論參數數組中有多少個參數,powershell都會忽略'&'是否用單引號或雙引號封裝。 – Jim

+0

感謝您的編輯。我已經刪除了我的-1 – latkin

2

PowerShell中的轉義字符是反引號(`),所以嘗試改變/R:global_General_Assets_P&E/R:global_General_Assets_P`&E

& $CmdLine -f:passwordFile.txt /A:Coreplan /U:admin /D:BalSheet /R:global_General_Assets_P`&E 

如果不工作:請用您收到的錯誤消息更新您的問題。

+0

謝謝,這仍然報錯:'E'不被識別爲內部或外部命令, 可操作的程序或批處理文件。 –

+0

嘗試皮帶和吊帶:''/ R:「global_General_Assets_P'&E」'' –