Powershell - 使用多个字符串循环多个变量

时间:2016-11-07 19:15:02

标签: loops powershell variables foreach

不确定这是否可能,但我想问。

我有一个powershell脚本,可以对文件和目录清理进行一些基本的复制。我需要在循环中运行相同的脚本,但每次运行都要更改两个变量。

所以我会有变量列表: $ tml = @(" site1"," site2"," site3") $ pc = @(" pc1"," pc2"," pc3")

然后我的脚本就像这样基本的东西: Copy-Item -Path E:\ disaster_rec \ $ tml \ -Recurse -Destination \ $ pc \ c $ \ disaster_rec -Force

但是通过每次运行,我希望它为每个变量使用下一个变量字符串。

所以它最终会像这样运行:

Copy-Item -Path E:\ disaster_rec \ site1 \ -Recurse -Destination \ pc1 \ c $ \ disaster_rec -Force

Copy-Item -Path E:\ disaster_rec \ site2 \ -Recurse -Destination \ pc2 \ c $ \ disaster_rec -Force

Copy-Item -Path E:\ disaster_rec \ site3 \ -Recurse -Destination \ pc3 \ c $ \ disaster_rec -Force

这一切都是可能的吗?如果可以的话,你能指出我正确的方向吗?我尝试过使用foreach,但似乎无法使用两个变量。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

$tml = @{"site1"="pc1","site2"="pc2","site3"="pc3"}
foreach($key in $tml.Keys)
{
    Copy-Item -Path "E:\disaster_rec\$key\" -Recurse -Destination "\$($tml[$key])\c$\disaster_rec" -Force
}

查看哈希表$tmz = @{"key" = "value"}