2016-11-07 2 views
0

Не уверен, что это возможно, но я хотел спросить.Powershell - Зацикливание нескольких переменных с несколькими строками

У меня есть сценарий powershell, который выполняет базовое копирование файлов и очистку каталогов. Мне нужно запустить один и тот же скрипт в цикле, но сменив две переменные, каждая из которых выполняется.

Так что я бы список переменных: $ TML = @ ("site1", "site2", "site3") $ шт = @ ("PC1", "рс2", "PC3")

Тогда мой сценарий будет что-то основное, как это: Copy-Item -Path E: \ disaster_rec \ $ TML \ -Recurse -destination \ $ рс \ с $ \ disaster_rec -Force

Но через каждый перспективе, я хотел бы, чтобы она использовала следующую строку переменной в строке для каждой переменной.

Так что в конечном итоге работает так:

Copy-Item -Path E: \ disaster_rec \ site1 \ -Recurse -destination \ PC1 \ с $ \ disaster_rec -Force

Copy-Item -Path E: \ disaster_rec \ site2 \ -Recurse -destination \ PC2 \ с $ \ disaster_rec -Force

Copy-Item -Path E: \ disaster_rec \ site3 \ -Recurse -destination \ пс3 \ с $ \ disaster_rec -Force

Возможно ли это, и если да, не могли бы вы указать мне в правильном направлении? Я пробовал использовать foreach, но не могу заставить его работать с двумя переменными.

Любая помощь была бы принята с благодарностью.

ответ

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"}

+0

Обновленный ответ. – TacoMaster6000

Смежные вопросы