Если при запуске программы или скрипта вы видите ошибку
“C:\Program” не является внутренней или внешней командой, исполняемой программой или пакетным файлом
– не спешите паниковать 🙂
Эта ошибка встречается почти у всех, кто хоть раз пытался запустить .exe или .bat файл, лежащий в папке с пробелом в названии, например Program Files или Program Files (x86).
В этой статье разберём:
- почему появляется ошибка,
- как её исправить,
- и что делать, если вы работаете через PowerShell или создаёте свой скрипт.
💡 Почему появляется ошибка “C:\Program не является командой”
Windows считает, что всё, что идёт до пробела, – это название команды.
Поэтому при вводе в консоли строки вроде:
C:\Program Files (x86)\Kaspersky Lab\NetworkAgent\klmover.exe -address 192.168.204.3
командная строка думает, что нужно выполнить программу C:\Program, а остальное (Files (x86)\...) воспринимает как аргументы, что и вызывает ошибку.
✅ Правильный способ – заключать путь в кавычки
Чтобы Windows поняла, что весь путь – это один объект, его нужно взять в двойные кавычки:
"C:\Program Files (x86)\Kaspersky Lab\NetworkAgent\klmover.exe" -address 192.168.204.3
📎 Теперь путь считается единым, и команда выполнится без ошибок.
🔧 Пример из практики (Kaspersky Security Center)
При переносе Kaspersky Security Center 10 на новый сервер нужно заново привязать агентов администрирования к новому IP-адресу.
Для этого на клиентских компьютерах запускается утилита klmover.exe, которая находится в папке с пробелами:
C:\Program Files (x86)\Kaspersky Lab\NetworkAgent\
Если выполнить команду без кавычек, появится ошибка:
“C:\Program” не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
А вот правильная команда:
"C:\Program Files (x86)\Kaspersky Lab\NetworkAgent\klmover.exe" -address 192.168.204.3
После этого агенты успешно перепривяжутся к новому серверу.
🧠 Частые ошибки новичков
- ❌ Кавычки внутри пути
Нельзя писать так:C:\"Program Files (x86)"\Kaspersky Lab\...Это не сработает. Кавычки должны охватывать весь путь, а не его части. - ⚙️ Запуск из PowerShell
В PowerShell кавычки тоже работают, но иногда путь нужно указывать с&перед ним:& "C:\Program Files (x86)\Kaspersky Lab\NetworkAgent\klmover.exe" -address 192.168.204.3Это особенно важно, если команда начинается с пути, а не с имени исполняемого файла в системных переменных. - 🧩 Пробелы в именах переменных
Если используете переменные, оборачивайте их тоже в кавычки:"%PROGRAMFILES(X86)%\Kaspersky Lab\NetworkAgent\klmover.exe"
🚀 Как избежать таких ошибок в будущем
- Избегайте пробелов в путях, если создаёте свои каталоги для скриптов. Лучше использовать подчеркивания:
C:\AdminTools\Kaspersky_Agent\ - Если часто работаете через CMD – добавьте нужный путь в переменную PATH, чтобы не писать полный адрес.
- В .bat-файлах всегда ставьте кавычки вокруг путей, особенно если скрипт будет использоваться другими людьми.
📹 Видео-инструкция
Для наглядности можно посмотреть короткое видео – там показано, как ошибка возникает и как её исправить всего за пару секунд.
(Видео будет добавлено позже, как только выйдет новая версия материала.)
🔗 Полезные материалы
- Ошибки при запуске bat-файлов в Windows и как их исправить
- Как правильно прописывать пути в PowerShell и CMD
🧰 Итого
Ошибка "C:\Program" не является внутренней или внешней командой – это не баг, а просто особенность работы Windows с пробелами в путях.
Исправляется элементарно: ставим кавычки вокруг полного пути и команда запускается без проблем.











а что если я програмирую на ” C” в редакторе Sublime и также выбывает («C:\Program» не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
)