У меня есть сценарий powershell, который создает папки на нашем NAS для каждого ученика в соответствии с их номерами учеников. Имена папок поступают из CSV-файла, который я импортирую с сервера. Это то, что у меня есть:Создание папки Powershell
Set-Location "C:\studentdata"
$StudFolders = import-csv \\servername\datafolder\studfolders.csv
ForEach ($StudFolders in $StudFolders) {
if(Test-Path -Path C:\Studentdata\$StudFolders) {
New-Item $StudFolders.Name -type directory
}else{
"Folders already created"
}
}
Этот скрипт отлично работает, если я запускаю его только один раз. Если я запустил его снова, я получаю ошибки в окне консоли о уже существующих папках. То, что я хочу сделать, это поймать ошибки с помощью IF-части скрипта, но я не уверен, правильно ли я использую IF для powershell. Это поможет, если я отредактирую CSV с большим числом учеников, он будет отображаться без ошибок.
Может кто-нибудь указать мне в правильном направлении?
EDIT:
Это то, что я имею в studfolders.csv
Name
2003040052
2003060213
2003060310
2003060467
Вы протестировали это с помощью безобидного заявления, заменяющего инструкцию 'New-Item', или используя' -WhatIf' в 'New-Item'? В качестве альтернативы, вы пробовали «Test-Path» напрямую, с одним известным из известных путей и неизвестным? –
Ваш 'if' назад! 'Test-Path' возвращает' $ true', когда путь _found_ (т. Е. Он уже существует) – gvee
Покажите нам содержимое вашего CSV-файла. Еще лучше покажите нам результат выполнения Импорта-Csv. Без этого мы только догадываемся о том, что делает ваш скрипт. –