Используйте runas с cmd /k и путем, содержащим пробелы

Вопрос или проблема

Вот команда, которую я пытаюсь выполнить:

runas /netonly /user:DOMAIN\user "cmd /k C:\Program Files (x86)\program.exe"

Когда я пытаюсь выполнить её, я получаю следующее сообщение об ошибке:
'C:\Program' не распознано как внутренняя или внешняя команда, исполняемая программа или пакетный файл.

Так как следующие команды работают:

runas /netonly /user:DOMAIN\user "C:\Program Files (x86)\program.exe"
cmd /k """C:\Program Files (x86)\program.exe"""

Я также пробовал эту команду:

runas /netonly /user:DOMAIN\user "cmd /k """"""C:\Program Files (x86)\program.exe"""""""
# плохой синтаксис

runas /netonly /user:DOMAIN\user "cmd /k \"C:\Program Files (x86)\program.exe\""
# Термин 'x86' не распознан

Мне не удалось найти правильное использование двойных кавычек, чтобы заставить мою команду выполниться.

Одним из способов является использование короткого имени пути, например:

runas /netonly /user:DOMAIN\user "cmd /k C:\Progra~2\program.exe"

dir /x даст как короткое, так и длинное имя файла.

Мне кажется более аккуратным показывать полный путь, это работает для меня хорошо:

runas /netonly /user:DOMAIN\user "cmd /k \"C:\Program Files (x86)\program.exe\""

Ответ или решение

Для того чтобы корректно выполнить команду runas с использованием cmd /k и путём, содержащим пробелы, необходимо правильно управлять кавычками. Ниже приведены подробные объяснения различных аспектов, связанных с вашим запросом.

Ошибка и проблема с кавычками

При выполнении команды:

runas /netonly /user:DOMAIN\user "cmd /k C:\Program Files (x86)\program.exe"

Вы получаете сообщение об ошибке:

'C:\Program' is not recognized as an internal or external command, operable program or batch file.

Это происходит из-за того, что командная строка интерпретирует пробел в пути как разделитель между аргументами, что приводит к распознаванию команды C:\Program вместо полного пути к исполняемому файлу.

Правильное использование кавычек

Для того чтобы избежать этой ошибки, вы можете использовать дополнительные кавычки для корректного указания полного пути. Попробуйте следующую команду:

runas /netonly /user:DOMAIN\user "cmd /k \"C:\Program Files (x86)\program.exe\""

Обратите внимание на использование обратной косой черты (\) перед кавычками. Это позволяет Windows понять, что кавычки являются частью аргумента, а не завершением команды.

Альтернативный подход с коротким путём

Вы также можете использовать короткие имена папок (8.3 формат), чтобы избежать проблем с пробелами. Например, попробуйте следующий вариант:

runas /netonly /user:DOMAIN\user "cmd /k C:\Progra~2\program.exe"

Здесь Progra~2 — это короткое имя для Program Files (x86), которое можно получить с помощью команды dir /x.

Резюме

Существует несколько вариантов решения проблемы с запуском программ, расположенных по путям, содержащим пробелы. Используйте кавычки для заключения полного пути или альтернативный короткий формат для гибкости и простоты. Оба подхода обеспечивают корректное выполнение команды runas.

Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью!

Оцените материал
Добавить комментарий

Капча загружается...