Foreach с if / else для проверки содержимого файла - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь создать сценарий, который принимает файл с именами компьютеров и проверяет, есть ли для них папка, созданная для общего ресурса.Скрипт, который я создал ниже, не работает и возвращает true для каждой строки в файле.Причиной использования foreach является указание имени папки в выходных данных.Есть предложения?

$computer=Get-Content -path 'C:\comp.csv'

foreach ($comp in $computer) {
$path= Test-path '\\UNC_folder_path\'
if ($path -eq $True) {Write-host "$comp = Success"}
Else {Write-host "$comp = Failure"}
}

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

В вашем цикле вы всегда тестируете один и тот же путь '\ UNC_folder_path \'.

Если вы хотите увидеть, создана ли папка в этом пути, предложение Clev выглядит нормально.Предполагая, что ваш CSV-файл содержит только имена компьютеров

CSV-файл:

cpu1
cpu2

Ваш сценарий:

$computer=Get-Content -path 'C:\comp.csv'

foreach ($comp in $computer) {
$path= Test-path '\\UNC_folder_path\$comp' #or $path= Test-path '\\UNC_folder_path\$_'
if ($path -eq $True) {Write-host "$comp = Success"}
Else {Write-host "$comp = Failure"}
}
0 голосов
/ 22 февраля 2019

Просто предположение, но вы забыли проверить папку конкретного компьютера по пути UNC?

$path= Test-path '\\UNC_folder_path\' 

Изменить на

$path= Test-path '\\UNC_folder_path\$comp'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...