Я сражался с Powershell, чтобы сделать то, что мне нужно.Это может быть простое решение, но я не нашел его.Если этот вопрос является дубликатом, я прошу прощения, но я не смог найти ответ, который искал.
TL; DR внизу.
Итак, у меня есть проблема,Я пытаюсь добавить сценарий PS в контекстное меню через regedit, который удаляет папку + файлы внутри, он отлично работает на папках без пробелов в нем, но когда я пытаюсь удалить папку с пробелами (например, «Новая папка»), онвыдает ошибку и закрывается.(Попытка поиска команды pause / sleep с Remove-Item, но безуспешно, за исключением длинных сценариев с обработкой ошибок и т. Д.)
Я подозреваю, что ошибка похожа на
Remove-Item : A positional parameter cannot be found that accepts argument 'Folder'.
В строке: 1 символ: 12 + Remove-item <<<< Новая папка + CategoryInfo: InvalidArgument: (:) [Remove-Item], ParameterBindingException + FullyQualifiedErrorId: PositionalParameterNotFound, Microsoft.PowerShell.Commands.RemoveItemCommand </p>
И код, который я сейчас использую:
cmd /c PowerShell Remove-Item "%1" -recurse -force
Я пробовал разные варианты, чтобы он работал без удачи.IE заменил "%1"
на «pathAsString», добавил еще один "% 1"
, добавил подстановочный знак "* *"
, убрал флаги.Несколько разных вариантов кода, который я пробовал:
cmd /c PowerShell Remove-Item \"%1\" -recurse -force
cmd /c PowerShell Remove-Item & "{"%1" -recurse -force"}"
TL; DR cmd /c PowerShell Remove-Item "%1" -recurse -force
игнорирует папки с пробелами, пробовал разные вещи.Использование в контекстном меню (через Regedit).
Может быть, решение очевидно, но я его не вижу.