2013-04-04 74 views
5

我正在研究需要根據用戶輸入動態傳遞RoboCopy開關的腳本,因此使用array看起來是最佳選擇。不過,在使用I指定具有空格和值的參數/XF時,我看到以下問題。如何將空間參數作爲數組傳遞給Powershell中的RoboCopy?

這按預期工作:

RoboCopy C:\Dir1 C:\Dir2 /NP /NFL /NS /NDL /NJH /NJS /XF *.config 

這按預期工作:

$Switches = @("/NP", "/NFL", "/NS", "/NDL", "/NJH", "/NJS", "/E") 

RoboCopy C:\Dir1 C:\Dir2 $Switches 

這將引發ERROR : Invalid Parameter #10 : "/XF *.config"

$Switches = @("/NP", "/NFL", "/NS", "/NDL", "/NJH", "/NJS", "/E", "/XF *.config") 

RoboCopy C:\Dir1 C:\Dir2 $Switches 

我嘗試了一些像使用/XF參數引用但沒有成功的東西。任何提示/幫助表示讚賞。

回答

4

你可以試試這個,我無法測試,但讓我知道..:

$Switches = @("/NP", "/NFL", "/NS", "/NDL", "/NJH", "/NJS", "/E", "/XF", "*.config") 
+0

謝謝!這符合預期:) – 2013-04-04 12:40:19

+0

@NitinBadole好!樂意效勞! – 2013-04-04 13:18:22

2

我變型(多XD/XF參數):

$RobocopyParams = @("/NP", "/NFL", "/NS", "/NDL", "/NJH", "/NJS", "/E") 
$XD = @("Cookies", "His6", "SendTo", "Temp", "Temporary Internet Files", "Windows") 
$XF = @("*.pif", "$UserName.INI", "$UserName.OPS", "$UserName.INI.*") 
robocopy.exe @params /XD @XD /XF @XF 
+0

謝謝,使用PowerShell時,您的splat解決方案解決了我的問題 – 2016-07-12 09:02:11

相關問題