2013-04-04 11 views
5

Sto lavorando a uno script che richiede che gli switch RoboCopy vengano passati in modo dinamico in base all'input dell'utente, quindi utilizzare array sembra l'opzione migliore. Tuttavia vedo il seguente problema quando utilizzo specificando parametri come /XF che hanno uno spazio e un valore.Come passare i parametri con spazi come array a RoboCopy in PowerShell?

Questo funziona come previsto:

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

Questo funziona come previsto:

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

RoboCopy C:\Dir1 C:\Dir2 $Switches 

Questo tiri ERROR : Invalid Parameter #10 : "/XF *.config":

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

RoboCopy C:\Dir1 C:\Dir2 $Switches 

Ho provato alcune cose come usare le virgolette con il parametro /XF ma senza successo. Ogni suggerimento/aiuto è apprezzato.

risposta

4

Puoi provare questo, non posso provarlo, ma fatemi sapere ..:

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

Grazie! Questo ha funzionato come previsto :) –

+0

@NitinBadole Buono! Felice di aiutare! –

2

mio variante (più parametri 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

Grazie, quando si utilizza PowerShell, la soluzione splat ha risolto i miei problemi –

Problemi correlati