2013-04-04 11 views
5

Pracuję nad skryptem, który wymaga przełączników RoboCopy, aby były przekazywane dynamicznie w oparciu o dane wejściowe użytkownika, stąd użycie opcji array wydaje się najlepszą opcją. Jednak widzę następujący problem podczas używania I określić parametry, takie jak /XF, które mają spację i wartość.Jak przekazywać parametry ze spacjami jako tablicę do RoboCopy w Powershell?

To działa zgodnie z oczekiwaniami:

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

To działa zgodnie z oczekiwaniami:

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

RoboCopy C:\Dir1 C:\Dir2 $Switches 

To rzuca ERROR : Invalid Parameter #10 : "/XF *.config":

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

RoboCopy C:\Dir1 C:\Dir2 $Switches 

Próbowałem kilku rzeczy, takich jak używanie cytatów z parametrem /XF, ale bez powodzenia. Każda wskazówka/pomoc jest doceniana.

Odpowiedz

4

można spróbować tego, nie mogę go przetestować, ale daj mi znać ..:

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

Dzięki! To działało zgodnie z oczekiwaniami :) –

+0

@NitinBadole Good! Miło, że mogłem pomóc! –

2

Mój wariant (więcej parametrów 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

Dzięki, gdy korzystasz z PowerShell, Twoje rozwiązanie splat poprawiło moje problemy –

Powiązane problemy