Мой вопрос больше относится к PowerShell, но для полноты картины я использую AutoHotKey для запуска команды PowerShell.
Я пытаюсь передать некоторые аргументы в PowerShell с параметром «-Command», но сталкиваюсь с проблемы, если аргументы содержат «специальные» символы.
Например, у меня есть три папки:
c:\folder that works
c:\folder doesn't work
c:\[01] folder not working either
Я также тестирую PowerShell 5.1 (встроенные в Windows 10) и новый PowerShell 7.0.1 (портативная версия) с Windows Терминалом (wt.exe). Это команды, которые я пробовал использовать с помощью AutoHotKey:
Run, powershell.exe -NoExit -ExecutionPolicy Bypass -Command "Get-ChildItem -Path '%Clipboard%'"
Run, wt.exe "c:\ps7\pwsh.exe" -NoExit -ExecutionPolicy Bypass -Command "Get-ChildItem -Path '%Clipboard%'"
Любое использование PowerShell работает с папками, не содержащими специальных символов.
С папкой с апострофом (отображается как одинарная кавычка) в имени, например c:\folder doesn't work
, PowerShell 5.1 выдает следующую ошибку:
The string is missing the terminator: '.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : TerminatorExpectedAtEndOfString
PowerShell 7.0.1 даже не выдает ошибку. На самом деле он ничего не показывает.
В папке с квадратными скобками «[]» ни PowerShell 5.1, ни 7.0.1 тоже ничего не показывают. Даже не ошибка.
Думаю, у меня проблема с экранированием символов или их правильным цитированием.
Я был бы очень признателен за любые комментарии относительно того, как я могу заставить свой код работать.
РЕДАКТИРОВАТЬ: Забыл упомянуть, я использую Windows Терминал ( wt.exe ) для PowerShell 7.0.1.