2013-04-04 73 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

相关问题