Powershell pass命令切换为变量

par*_*git 2 powershell

我正在尝试创建一个处理文件夹和文件副本的脚本。我需要通过开关-recures -container,如果它是一个文件夹,什么都不是文件。有没有办法创建一个变量来保存'-recurse -container'并将其传递给命令,如下所示:

$copy_args = '-Recurse -container '
Copy-Item $tmptmp\$file -Destination \\$server\d$\$tmpprd\ $copy_args -Force
Run Code Online (Sandbox Code Playgroud)

谢谢莫

Mar*_*agg 6

最好的方法是使用称为splatting的技术。您创建了一个要传递的参数的哈希表,然后将@其与变量名(而不是$)一起使用,以表明您希望将其扩展到必需的cmdlet参数:

$copy_args = @{
     Recurse = $true
     Container = $true
}

Copy-Item $tmptmp\$file -Destination \\$server\d$\$tmpprd\ @copy_args -Force
Run Code Online (Sandbox Code Playgroud)