Здесь впервые используется Powershell, поэтому, пожалуйста, будьте осторожны со мной ...
Я написал скрипт, который проверяет каталог, и для любого каталога внутри него он должен быть удален. У меня проблема с каталогами, содержащими скобки -> [] в имени каталога. Даже если каталог не пустой, он все равно удаляется. Кто-нибудь может помочь? Вот код, который я использую:
$path = "C:\path\to\directory"
Get-ChildItem -Path $path -Recurse -Force | Where-Object { $_.PSIsContainer -and (Get-ChildItem -Path $_.FullName -Recurse -Force | Where-Object { !$_.PSIsContainer }) -eq $null } | Remove-Item -Force -Recurse
Я не совсем понимаю код выше, я нашел его в Интернете. Но это работает для каталогов, которые не имеют скобок.
Для каталога с именем « SummerPhotos », содержащего файл, каталог не удаляется. -> Хорошо
Для каталога, который пуст, он удаляется. -> Хорошо
Для каталога с именем SummerPhotos [2009] он удаляется, даже если он содержит файл. -> Плохо
Я погуглил и прочитал, что powershell рассматривает скобки как символы подстановки, но я не уверен, как обойти это. Любая помощь будет оценена.
Спасибо!