Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
function f ([Parameter(Mandatory)][ValidateNotNullOrEmpty()][string] $Path) {
   if (Test-Path -Path $Path) {
       $Path
   } else {
       $Lines   = $Path.Split('\', [StringSplitOptions]::RemoveEmptyEntries)
       $NewPath = $Path.Replace('\' + $Lines[-1], '')

       if ([string]::IsNullOrEmpty($NewPath) -or $NewPath -eq '\') {
           return
       }
       
       f -Path $NewPath
   }
}

@(
   'C:\Windows\System32\drivers\etc'
   'C:\Users\VasiliyIvanovich\Error\Path\Typo'
   'HKCU:\Software\Microsoft\Siuf\Rules'
   '\\vmware-host\Shared Folders\pub\powershell'
   '\\vmware-host\Shared Folders\pub\powershell-'
   '\\vmware-host\Shared Folders\pub-\powershell'
   '\\vmware-host\Shared Folders-\pub\powershell'
   'C:'
   'HKCU:'
   '\\vmware-host'
)|%{"'{0}' ==> '{1}'"-f$_,(f $_)}


Если оставлять обратный слэш, использовать split по обратному слэшу, то с unc путями в test-path может передаться пустая строка и тот выдаст ошибку о недопустимости null в переменной. Поэтому удалять обратный слэш.

Код:
$NewPath = $Path.Replace('\' + $Lines[-1], '')

Но блок проверки:

Код:
if ([string]::IsNullOrEmpty($NewPath) -or $NewPath -eq '\') {
            return
        }

все же сделал заодно он не даёт проверять путь: '\'

Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 09:52 07-07-2020
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru