2016-03-26 223 views
0

我想從命令提示符執行PowerShell腳本。我已經從PowerShell驗證腳本,它工作正常。我去了腳本位置並執行它作爲無法從CMD運行PowerShell腳本

./hyperv_disk_ops.ps1 -op 'getDiskAttachmentInfo' -vmid '{6612D0CB-BCC3-44D4-988B-526500578D54}' -disk_ids ("Microsoft:7B036CE0-5D67-46BA-AF7B-B2AFD8DD7946\83F8638B-8DCA-4152-9EDA-2CA8B33039B4\0\0\D") 

但是當我試圖從命令提示符下運行它作爲

powershell.exe C:\hyperv_disk_ops.ps1 -op 'getDiskAttachmentInfo' -vmid '{6612D0CB-BCC3-44D4-988B-526500578D54}' -disk_ids ("Microsoft:7B036CE0-5D67-46BA-AF7B-B2AFD8DD7946\83F8638B-8DCA-4152-9EDA-2CA8B33039B4\0\0\D") 

它給了我一個錯誤

ERROR: Failed to find object of [Microsoft:7B036CE0-5D67-46BA-AF7BB2AFD8DD794683F8638B-8DCA-4152-9EDA-2CA8B33039B400D] disk which is associated with [{6612D0CB-BCC3-44D4-988B-526500578D54}] VM.

兩者都是準確的相同但爲什麼它不從命令提示符運行?

+0

[Powershell - 轉義字符串傳遞給子進程]可能的副本(http://stackoverflow.com/questions/34276662/powershell-escaping-string-passed-to-child-process) – PetSerAl

+1

由於您的錯誤消息是_not_源自命令行解析,但是來自腳本中的代碼,查看腳本會很有幫助。 –

回答

0

嘗試從命令提示符下運行與雙反斜槓,像這樣:

powershell.exe C:\hyperv_disk_ops.ps1 -op 'getDiskAttachmentInfo' -vmid '{6612D0CB-BCC3-44D4-988B-526500578D54}' -disk_ids ("Microsoft:7B036CE0-5D67-46BA-AF7B-B2AFD8DD7946\\83F8638B-8DCA-4152-9EDA-2CA8B33039B4\\0\\0\\D")

看起來,在你提供的錯誤,所有的斜線都在磁盤路徑省略。