Задать вопрос
@den_scs

Как предать данные из массива в скрипт?

Что делаю:
Создаю список файлов для создания переменных, для передачи их в openssl и симметричного шифрования.
Скрипт ниже рабочий, но он работает только если жестко указывать переменные in и out, при этом указывая какая именно строка должна быть использована.
Вопрос:
Как сделать так, чтобы весь массив в переменных обрабатывался автоматически.
$src = Get-ChildItem -r B:\backup\ -include *.xls | Where-Object {$_.LastWriteTime -ge [datetime]::Today.AddHours(-24)}
$in = Get-ChildItem $src | % { $_.fullname } 
$out = Get-ChildItem $src | % { $_.Name }
cd r:\test
$key = "l:\key\key.bin"
& 'C:\Program Files (x86)\OpenSSL\bin\openssl.exe' enc -e -aes-256-cbc -kfile $key -in $in.getvalue(0) -out $out.GetValue(0)

$in:
B:\backup\ Файл1.xls
B:\backup\ Файл2.xls
B:\backup\ Файл3.xls
B:\backup\ Файл4.xls
$out:
Файл1.xls
Файл2.xls
Файл3.xls
Файл4.xls
  • Вопрос задан
  • 74 просмотра
Подписаться 2 Средний Комментировать
Решения вопроса 1
@azarij
В меру опытный никто
мне кажется вот тут:
$in = Get-ChildItem $src | % { $_.fullname } 
$out = Get-ChildItem $src | % { $_.Name }

не нужны get-childitem.

далее. попробуйте вот так:

$src = Get-ChildItem -r B:\backup\ -include *.xls | Where-Object {$_.LastWriteTime -ge [datetime]::Today.AddHours(-24)}
cd r:\test
$key = "l:\key\key.bin"
foreach($item in $src){
& 'C:\Program Files (x86)\OpenSSL\bin\openssl.exe' enc -e -aes-256-cbc -kfile $key -in $item.fullname -out $item.name
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@den_scs Автор вопроса
Благодарю за направление, частично сделано.
Проблема:
Foreach может обрабатывать только 1 ($in in $ins), также нужно изменять вторую переменную $out, но forceach не поддерживает конвейер...
ForEach ($ins In $in) {& 'R:\test\OpenSSL\bin\openssl.exe' enc -e -aes-256-cbc -kfile $key -in $ins -out $out}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы