如何将带空格的参数作为数组传递给Powershell中的RoboCopy?

时间:2013-04-04 11:21:05

标签: powershell robocopy

我正在开发一个需要根据用户输入动态传递RoboCopy开关的脚本,因此使用array似乎是最好的选择。但是,在使用时,我看到以下问题:我指定了具有空格和值的/XF等参数。

这符合预期:

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参数引用但没有成功的事情。任何提示/帮助表示赞赏。

2 个答案:

答案 0 :(得分:4)

你可以尝试一下吗,我无法测试但是让我知道..:

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

答案 1 :(得分: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