我試圖使用PowerShell cmdlet Invoke-Expression
啓動RoboCopy。從PowerShell啓動時,Robocopy無法識別選項
在下面的腳本中,當選項僅僅是',RoboCopy工作正常。',但只要選項'/ MIR'被添加,我得到這個「無效的參數#3」錯誤。
似乎RoboCopy在解析'/ MIR'時遇到了問題,並且在選項中的正斜槓上出現ch咽。我試過使用各種逃避角色無濟於事!
# Source & Destination paths
#
[string]$srcPath = 'C:\folderSrc'
[string]$desPath = 'C:\folderDes'
# Example 1
# ----------
# This works - note how $option1 contains only '*.*'
#
[string]$option1 = '*.*'
[string]$line = 'RoboCopy $srcPath $desPath $option1'
Invoke-Expression "$line"
# Example 2:
# ----------
# This doesn't work - after '/MIR' is added to the option, RoboCopy seems to choke on the forward slash in '/MIR'
#
[string]$option2 = '*.* /MIR'
[string]$line = 'RoboCopy $srcPath $desPath $option2'
Invoke-Expression "$line"
在我的問題,示例1的作品,但示例2沒有。和唯一的區別是$ option1 ='\ *。\ *'和$ option2 ='\ *。\ */MIR' – user3657462
我不認爲有一個可變的擴展問題,因爲如果變量沒有沒有得到正確的擴展 – user3657462
首先,請[編輯你的問題](http://stackoverflow.com/posts/42496558/edit),不要添加評論來嘗試和修改它。其次,由於知道這是一個解釋器,而不是直接的PowerShell,正如您在回答Christopher G. Lewis的答案時所分享的那樣,我會認爲這是您的解釋器而不是PowerShell本身的問題。看起來解釋器沒有正確處理斜線。 – TheMadTechnician