Если вы слегка измените свой пример, чтобы просто отобразить переменную $ path, вот так:
$file_nameone_array = @( "table", "chair", "comp" )
$file_nametwo_array = @( "top", "leg" , "cpu" )
foreach ($input_file in $file_nameone_array) {
foreach ($input_rev in $file_nametwo_array) {
$path = "D:\$input_file-$input_rev.txt"
write-host $path
}
}
вы получите этот вывод
D:\table-top.txt
D:\table-leg.txt
D:\table-cpu.txt
D:\chair-top.txt
D:\chair-leg.txt
D:\chair-cpu.txt
D:\comp-top.txt
D:\comp-leg.txt
D:\comp-cpu.txt
, чтобы вы могли понять, почему он ищет "D: \ table-top.txt "в качестве первого файла.
что вы можете сделать вместо этого:
$file_nameone_array = @( "table", "chair", "comp" )
$file_nametwo_array = @( "top", "leg" , "cpu" )
for( $index = 0; $index -lt $file_nameone_array.Length; $index++ ) {
$input_file = $file_nameone_array[$index];
$input_rev = $file_nametwo_array[$index];
$path = "D:\$input_file-$input_rev.txt"
write-host $path
}
и теперь вы получите этот вывод
D:\table-top.txt
D:\chair-leg.txt
D:\comp-cpu.txt
Вы можете заменить хост записи своей исходной логикой проверки файлов, и вы должны получить поведение, которое вы выполняли после этого.
Примечание. Для этого необходимо, чтобы массивы были одинаковой длины, поэтому может потребоватьсянекоторая обработка ошибок перед этим битом кода в вашем скрипте.