Вам нужно вызвать cmd.exe
следующим образом:
cmd.exe /c "`"$_cmd`""
Команды, которые вы отправляете на cmd.exe
, должны быть полностью заключены в свои собственные кавычки, а не только в пути с пробелами, которыечасть этих команд.Это связано с тем, как Powershell анализирует строку, и ему необходимо передать буквальные кавычки cmd.exe
, чтобы он, в свою очередь, правильно выполнял собственный синтаксический анализ содержимого двойных кавычек.
Например, если выбыли уже в сеансе cmd.exe
и установили переменную следующим образом:
C:\>set _cmd="C:\Program Files (x86)\VisualSVN Server\bin\svnadmin" verify "C:\My Repositories\App1"
Тогда простое расширение этой переменной в командной строке будет работать:
C:\>%_cmd%
Однако, если передать ееновый сеанс cmd.exe
, также потребуются дополнительные кавычки:
C:\>cmd.exe /c "%_cmd%"