在Windows PowerShell中,我試圖在一個字符串中存儲一個移動命令,然後執行它。有人能告訴我爲什麼這不起作用嗎?爲什麼我不能使用powershell中的字符串參數執行commandlet?
PS C:\Temp\> dir
Directory: Microsoft.PowerShell.Core\FileSystem::C:\Temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 8/14/2009 8:05 PM 2596 sa.csproj
-a--- 8/15/2009 10:42 AM 0 test.ps1
PS C:\Temp> $str = "mv sa.csproj sb.csproj"
PS C:\Temp> &$str
The term 'mv sa.csproj sb.csproj' is not recognized as a cmdlet, function, operable program, or script file. Verify the
term and try again.
At line:1 char:2
+ &$ <<<< str
PS C:\Temp>
當存儲帶參數的任何命令時,出現此錯誤。我如何克服這個限制?
感謝另一個很好的選擇,你覺得你能解釋(或連結)什麼樣的性格和做一個解釋? – 2009-08-15 18:36:23
'&'用於執行單個命令,腳本或腳本塊,就像幫助狀態一樣。它不執行任何解析,因此它只接受一個參數,然後假定它是一個可調用的命令。如果要添加參數,則可以將調用包裝在腳本或腳本塊中,或者使用「Invoke-Expression」。您可以通過在Powershell中輸入'help about_operators'來找到描述操作員的幫助頁面。 – Joey 2009-08-15 18:39:42