Msg не является внутренней или внешней командой windows 10

MSG не является внутренней или внешней командой - именно из пакетного файла CMD/BAT Решение и ответ на вопрос 634994

Dragokas

Эксперт WindowsАвтор FAQ

17954 / 7591 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

1

08.08.2012, 23:11. Показов 22079. Ответов 20

Метки нет (Все метки)


Голову сломил.

Почему команда MSG из под интерпретатора работает нормально (ПУСК -> Выполнить -> CMD), а
из под CMD-файла выдает: «MSG не является внутренней или внешней командой, исполняемой программой или пакетным файлом»?

Какие варианты только не пробовал (с расширенной обработкой и без нее):

Bash
1
2
3
4
5
setlocal EnableExtensions
msg
start "MSG" msg %username% Text
cmd /e:on /c msg * /server:127.0.0.1 /v /w /time:0 Text
pause

Здесь строка № 1 — опционально (пробовал с ней и без нее).
Строки 2,3,4 — альтернативы.

Все работает только при ручном наборе в ком. строке.

P.S. OS Win7 x64 Ultimate ru

Вложения

Тип файла: zip test.zip (279 байт, 79 просмотров)



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

08.08.2012, 23:11

20

Почетный модератор

Эксперт по компьютерным сетямЭксперт Windows

28037 / 15768 / 981

Регистрация: 15.09.2009

Сообщений: 67,753

Записей в блоге: 78

09.08.2012, 00:17

2

интересный вопрос… он задавался на форуме, к сожалению не удалось это сделать на удаленный комп… на локальный работает. то есть MSG отправляет всем сеансам на локальном компе… но никак на удаленный…
в отличие от net send в ранних версиях виндовс…



0



Эксперт JavaЭксперт С++

8376 / 3598 / 419

Регистрация: 03.07.2009

Сообщений: 10,708

09.08.2012, 00:18

3

У меня все работает.

MSG не является внутренней или внешней командой - именно из пакетного файла

Может у тебя %PATH% кривой? Хотя странно, что из cmd все норм…



0



Почетный модератор

Эксперт по компьютерным сетямЭксперт Windows

28037 / 15768 / 981

Регистрация: 15.09.2009

Сообщений: 67,753

Записей в блоге: 78

09.08.2012, 00:21

4

на локаль посылается…
в сеть нет…



0



Эксперт WindowsАвтор FAQ

17954 / 7591 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

09.08.2012, 01:08

 [ТС]

5

M128K145, так и у меня с консоли работает.

Запихаю в файл Test.CMD или Test.bat пишет «Не знаю я такой команды».

Цитата
Сообщение от M128K145
Посмотреть сообщение

Может у тебя %PATH% кривой?

Вроде нормальный. Да хоть нулевой. Нет такого файла в системе «msg.exe», то есть это внутренняя команда, которая должна выполняться в обязательном порядке.

magirus, я никуда не отправляю. У меня на своей локальной машине пишет — скриншот:

Миниатюры

MSG не является внутренней или внешней командой - именно из пакетного файла
 



0



Dragokas

Эксперт WindowsАвтор FAQ

17954 / 7591 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

09.08.2012, 01:31

 [ТС]

6

Симптом себя проявляет только если запускать скрипт двойным кликом по файлу (от имени Администратора или без).
Если таким же способом запустить CMD-файл с текстом:

Bash
1
cmd.exe

а затем вручную написать в открывшуюся консоль

Bash
1
MSG

получим бубен Имеем какую-то иную среду.

M128K145, P.S. Выполнить -> СMD {Enter} -> Call Test.CMD у меня тоже работает.



0



Эксперт JavaЭксперт С++

8376 / 3598 / 419

Регистрация: 03.07.2009

Сообщений: 10,708

09.08.2012, 01:46

7

Dragokas, а что у тебя в реестре находится в ветках HKEY_CLASSES_ROOTcmdfileshellopencommand и HKEY_CLASSES_ROOTbatfileshellopencommand



0



Эксперт WindowsАвтор FAQ

17954 / 7591 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

09.08.2012, 01:52

 [ТС]

8

В обоих значения «По-умолчанию»:



0



Эксперт WindowsАвтор FAQ

17954 / 7591 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

09.08.2012, 02:18

 [ТС]

9

Сравнительный анализ переменных окружения (команда SET).
Слева от консоли СMD.exe. Справа из под пакетного файла *.CMD

Миниатюры

MSG не является внутренней или внешней командой - именно из пакетного файла
 



0



1778 / 760 / 130

Регистрация: 09.04.2011

Сообщений: 1,325

10.08.2012, 00:03

10

Dragokas, у меня всё нормально работает http://savepic.org/2445721.jpg
Ось Windows XP SP3



1



Эксперт WindowsАвтор FAQ

17954 / 7591 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

11.08.2012, 02:09

 [ТС]

11

Я немного приврал: я запускал из файлового менеджера Total Commander. На умную мысль навел Petya V4sechkin, за что ему большое спасибо.
Запуск из проводника решил проблему.

Мало того, оказывается msg.exe есть в системе (windowssystem32), но TC 7.02a его не видит и его встроенный поиск тоже.
Встроенная панель ком. строки на команду C:windowssystem32msg.exe пишет «Не нахожу файла». Пора менять софт.

…Решилось запуском х64-битной редакции TC.



3



Эксперт JavaЭксперт С++

8376 / 3598 / 419

Регистрация: 03.07.2009

Сообщений: 10,708

11.08.2012, 02:19

12

Dragokas, с этого и надо было начинать Осталось только выяснить почему так происходит, ведь set практически одинаков и там, и там



0



Эксперт WindowsАвтор FAQ

17954 / 7591 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

11.08.2012, 02:57

 [ТС]

13

Всегда доверял этому TC. Подумал, что тут такого.
А вот на — даже в листинге системных файлов пропускает MSG.exe

Цитата
Сообщение от M128K145
Посмотреть сообщение

Осталось только выяснить почему так происходит

Виновато так называемое перенаправление файловой системы.
По умолчанию, 64-битные приложения на самом деле обращаются к папке System32,
32-битные — при попытке обратиться к папке System32 файловая система автоматически переадресовывает запрос в SysWOW64, где храняться 32-битные библиотеки.
Подробно: http://msdn.microsoft.com/en-u… S.85).aspx



2



Эксперт WindowsАвтор FAQ

17954 / 7591 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

12.08.2012, 06:00

 [ТС]

14



0



8 / 3 / 0

Регистрация: 05.02.2014

Сообщений: 42

07.02.2014, 19:29

15

Цитата
Сообщение от magirus
Посмотреть сообщение

на локаль посылается…
в сеть нет…

необходимо убедиться в правильности настройки:
• Настройки сетевого интерфейса разрешают использование «NetBIOS через TCP/IP».
• В брандмауэре Windows разрешено исключение «Общий доступ к файлам и принтерам» и разрешены следующие порты: UDP порты 137, 138 и TCP порты 139, 445 (для Windows XP/2003/Vista/7).
• Настройки сетевого профиля разрешают «Сетевое обнаружение» и «Общий доступ к файлам и принтерам» (для Windows Vista/7).
• Включение службы сообщений из командной строки:
sc config messenger start= auto
net start messenger
+
Если аргументы параметров команды содержат пробелы, их следует заключать в кавычки.
Возможны трудности при использовании длинных имен получателей сообщений. Имена, используемые службой сообщений, имеют длину до 15 знаков.
Предельная длина широковещательных сообщений составляет 128 знаков.



1



Эксперт WindowsАвтор FAQ

17954 / 7591 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

07.02.2014, 22:44

 [ТС]

16

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



0



YupiRex

188 / 145 / 32

Регистрация: 04.10.2013

Сообщений: 149

08.02.2014, 13:25

17

он не видит %windir%System32msg.exe
можно использовать костыль:

Bash
1
2
3
4
5
6
7
8
9
if not exist %windir%System32msg.exe (
    for /f %%i in ('dir /a-d/b/s %windir%*msg.exe') do set msg=%%i
    ) else (set msg=%windir%System32msg.exe)
 
 
%msg%
start "MSG" %msg% %username% Text
cmd /e:on /c %msg% * /server:127.0.0.1 /v /w /time:0 Text
pause



0



Dragokas

Эксперт WindowsАвтор FAQ

17954 / 7591 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

08.02.2014, 14:20

 [ТС]

18

YupiRex, команда start, будучи запущенной от имени 32-разрядного процесса, также будет перенимать разрядность, а значит на нее тоже будет действовать правило файловой переадресации.

Можете попробовать ввести

Bash
1
start "" msg * 123

в x32-битный AkelPad. Нажать Ctrl+F5. msg не запустится.

P.S. Поиск по dir /a-d/b/s %windir%*msg.exe ничего не найдет, т.к. будет всегда глядеть в SysWOW64.



1



188 / 145 / 32

Регистрация: 04.10.2013

Сообщений: 149

08.02.2014, 14:57

19

Цитата
Сообщение от Dragokas
Посмотреть сообщение

P.S. Поиск по dir /a-d/b/s %windir%*msg.exe ничего не найдет, т.к. будет всегда глядеть в SysWOW64.

у меня находит

Миниатюры

MSG не является внутренней или внешней командой - именно из пакетного файла
 



0



Pure Free Digital Ghost

4598 / 1910 / 370

Регистрация: 06.01.2013

Сообщений: 4,564

08.02.2014, 14:57

20

Хм. А C:Windows..Windows.system32msg.exe сработает? Или переадресация идет после этого?



0



Содержание

  1. Msg не является внутренней или внешней командой windows 10
  2. Запуск MSG /? на коробке Win 10 сказал, что MSG не был признан командой
  3. Не является внутренней или внешней командой
  4. «Имя файла» не является внутренней или внешней командой, исполняемой программой или пакетным файлом
  5. Основные причины, по которым появляется ошибка «не является внутренней или внешней командой»
  6. Указываем правильный путь в переменной path на ОС Windows 7
  7. «.» не является внутренней или внешней командой. Как обойти?
  8. Else не является внутренней или внешней командой
  9. Решение
  10. Решение

Msg не является внутренней или внешней командой windows 10

Я проверил «Программы» (что раньше называлось «Программы и компоненты») и не увидел в нем что-то, что я мог установить.

В чем дело? Как мне сделать это полезным? Каким другим коммадам нужно сделать такое же волшебство, чтобы они работали из обычной командной строки?

Спасибо за любую помощь.

Вы, очевидно, используете на всех компьютерах версию Home. Эта версия не включает команду MSG. Команда доступна только в версиях Windows, начиная с Pro.

В качестве дополнительного замечания, протестированного на Windows Enterprise, даже старая команда «net send» все еще существует в этой версии.

Судя по всему, попытка трансплантации msg.exe с более высоких версий Windows на Home не работает, поэтому нет простого обходного пути.

Однако вы можете написать свой собственный.

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

Самые изящные, которые я нашел, были:

Запуск MSG /? на коробке Win 10 сказал, что MSG не был признан командой

Мы купили новый компьютер для нового офиса; на нем, конечно, установлена ​​Windows 10 (Home).

Домашние выпуски Windows не включают msg

Какие другие команды должны сделать то же самое волшебство, чтобы они работали из обычной командной строки?

Этот вопрос «слишком широкий».

Источник

Не является внутренней или внешней командой

Помощь в написании контрольных, курсовых и дипломных работ здесь.

tickElse не является внутренней или внешней командой
Здравствуйте, недавно захотелось создать батник по оптимизации ПК(я в этом деле новичок, не судите.

tickОшибка в паттерне sed. png не является внутренней или внешней командой, исполняемой программой или пакентным файлом
Здравствуйте. Использую cygwin, поэтому могу использовать sed. Не знаю, правильный ли это.

Сообщение об ошибке «. не является внутренней или внешней командой. » при вызове javac и preverify
Ошибка, вроде типичная, пишет, что эти команды не являются внутренней или внешней командой и т.д.

Вложения

rar menu.rar (3.0 Кб, 4 просмотров)

Это очень хитрая команда 🙂

Ошибка пользователя произошла из-за двусмысленности древнего синтаксиса cmd.

Get-Item / Set-Item
Get-Content / Set-Content
Get-Date / Set-Date
.

——————————-
(*) Это не то чтобы какой-то прорыв в будущее; 40 лет назад, например, в DCL: Set File/Show file, Set Process/Show Process, Set User/Show user etc

path использую в коде, для того, что бы попасть в папку исполняющего файла, т.е.
path %the_bat%(перейти в папку the bat, путь прописан в переменной set the_bat=c:the bat)
далее запустить уже команду с нужными атрибутами.
Я правильно понимаю, что проблема в этой команде? Если я path заменю на команду cd проблема решится?

alpap
Общая суть скрипта следующая. Будет примерно 30-50 таких скриптов построенных на основе этого. У всех алгоритм работы почти одинаковый, будут изменения только в путях и атрибутах для команд The bat и makeTK.
sub1 часть кода забирает файлы, раскидывает их в нужные папки и запускает makeTK, далее полученный файл автоматом попадает в The bat. Эта часть работает и проверенна. Сложности начинаются дальше.
sub2 Часть кода. Нужно, подключить VPN соединение, запустить файл аутентификации(вывел его отдельно start telnet_n2.vbs) далее запускаем the bat(TheBat.exe /send*) на отправку сообщений, после чего нужна пауза и the bat(TheBat /check*) на прием файлов. В идеале хочу сделать интервал ожидания 20 секунд и проверку на прием файлов с возможностью в какой-то момент прервать ожидание и перейти к следующей части кода, как это сделать не знаю. Сложность в том, что ответы на отправленные файлы могут придти в интервале от 2 до 10 минут, т.е. нужна бесконечная(долгая) пауза с частатой 20 секунд и запуском the bat(TheBat /check*) с возможностью в какой-то момент скипнуть её и пойти дальше по коду.
Далее код работает корректно. Далее полученный ответ обрабатывается makeTK, переносим полученные в результате файлы в каталоги архива и убираем созданный в 1 части файл(отправленный по the bat) в общий архив.
sub3 Часть кода создает файл для печати. Из ies1 берет текст вставляет его в общий текстовый файл, потом вставляет текст из файла с отступами и после текст из ies2. Файл с отступами нужен, что бы текст ies1 и ies2 не склеился, далее идет текст из файла space там просто отступы(enter, enter, enter. ), что бы перейти на 2 страницу и сделать тоже самое n кол-во раз(в данном случае 3 раза). В итоге мы получаем 3 листа на каждом ies1 и ies2. Идея с отступами работает, но так и не смог написать код для отправки файла на печать. По этому просто решил написать код на открытие файла через блокнот и далее руками нажимать ctrl+p enter.
sub5 В итоге хочу на эту кнопку поставить все части в последоватльном запуске с паузой в конце каждого sub(пункта).

На будущее, как сделать 1 bat файл, с огромным меню на 30-50 кнопок с запуском каждого скрипта. Т.е. нажимаем в первом меню(bat файле) нужный пункт, закрывается этот bat и открывается следующий bat файл с меню(который мы обсуждаем здесь) далее идет последовательная обработка по пунктам.
Еще вопрос, как после выполнения sub1 вернуться в меню обратно? Т.е. выполнили sub1 вернулись в меню, нажади sub2 после его работы вернулись в меню и т.д.

Источник

«Имя файла» не является внутренней или внешней командой, исполняемой программой или пакетным файлом

При попытке открыть какую-либо команду через окно служебной программы или консоль, вы сталкиваетесь с ошибкой – «Имя файла» не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Система упрямо не открывает файл по каким-то причинам и этот факт очень раздражает. Причиной этого может быть один из нескольких вариантов: неправильно указан путь к файлу и отсутствие компонента в системе вообще, т.е по указанному адресу его не существует.

1 6

Основные причины, по которым появляется ошибка «не является внутренней или внешней командой»

Как уже было сказано, одна из причин заключается в неправильном указании пути к открываемому файлу. Обычно путь к файлу прописан в переменной «Path» в системе, должен быть указан строгий путь к директории, в котором размещены нужные файлы. Если имеются какие-то ошибки в настройках при указании пути в переменной, либо при указании имени файла, то система будет выдавать именно такую ошибку – «имя файла» не является внутренней или внешней командой, исполняемой программой.

Первым делом необходимо указать точный путь переменной «Path» операционной системе, чтобы не возникало ошибок при открытии файла. Для этого нужно наверняка знать расположение папки. К примеру, обратимся к программе, которая в дальнейшем будет работать с исполняемым файлом в определенной папке.

Переменная «Path» — это переменная операционной системы, которая служит для того, чтобы найти указанные исполняемые объекты через командную строку или терминал. Найти ее можно в панели управления Windows. В новых версиях Виндовс и других ОС указание вручную обычно не требуется.

3 3

Указываем правильный путь в переменной path на ОС Windows 7

Чтобы правильно указать путь необходимо знать точное расположение файла. Если файл программы, который нужно открыть лежит на диске в С:Program FilesJavajdk 1.8.0.45bin, тогда этот путь нужно скопировать и указать в системной переменной для последующего открытия.

В том случае, если ошибка будет появляться снова, попробуйте перенести программу в рабочие директории диска с установленной операционной системой, например /System32. С этой директорией Виндовс работает чаще.

Также ошибки возникают из-за отсутствия компонентов программы. Устранить их можно дополнив нужными. Для примера возьмем компонент «Telnet». Чтобы его включить, перейдите:

2 2Поставьте галочку рядом с компонентом Windows Telnet

Источник

«.» не является внутренней или внешней командой. Как обойти?

Значение Path:
C:Program FilesPico TechnologySDKlib;C:Program Files (x86)NVIDIA CorporationPhysXCommon;C:Program FilesMicrosoft MPIBin;C:ProgramDataOracleJavajavapath;C:Perl64site bin;C:Perl64bin;C:Program Files (x86)AMD APPbinx86_64;C:Program Files (x86)AMD APPbinx86;%SystemRoot%system32;%SystemRoot%;%SystemRoot% System32Wbem;%SYSTEMROOT%System32WindowsPowerShellv1.0; C:Program Filesdotnet;C:Program FilesMiKTeX 2.9miktexbinx64acute:doxygenbin;C:Program Files (x86)IVI FoundationVISAWinNTBin;C:Program FilesIVI FoundationVISAWin64Bin;C:Program Files (x86)IVI FoundationVISAWinNTTekVISABIN;C:Program Files (x86)Pico TechnologyPicoScope6;C:Ddmd2windowsbin;

Помощь в написании контрольных, курсовых и дипломных работ здесь.

tick«Installapp.exe» не является внутренней или внешней командой
Здравствуйте я столкнулся с такой проблемой. Что делать?

«net» не является внутренней или внешней командой
Выполняю на windows10, с cmd или bat особо не знаком. Хочу сменить имя пользователя, пишу.

» » не является внутренней или внешней командой
Пытаюсь воспользоваться командой CON. Перехожу в папку с файлами CD.

Источник

Else не является внутренней или внешней командой

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Не является внутренней или внешней командой
Подскажите, из-за чего возникает проблема с «любая команда bat» не является внутренней или внешней.

tickОшибка в паттерне sed. png не является внутренней или внешней командой, исполняемой программой или пакентным файлом
Здравствуйте. Использую cygwin, поэтому могу использовать sed. Не знаю, правильный ли это.

Сообщение об ошибке «. не является внутренней или внешней командой. » при вызове javac и preverify
Ошибка, вроде типичная, пишет, что эти команды не являются внутренней или внешней командой и т.д.

Moxito6
C:Program Files (x86)Common FilesOracleJavajavapath;C:Windowssystem32;C:Windows;C: WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShell v1.0;C:WindowsSystem32OpenSSH;C:Program Files (x86)ATI TechnologiesATI.ACECor
e-Static;C:UsersМелкийAppDataLocalMicrosoftWindowsApps;

Добавлено через 4 минуты
alpap, спасибо, но не помогло. Сначала я так и сделал, но если я вводил «Y», либо «N», то вообще ничего не выходило, батник закрывался.

Moxito6
C:Program Files (x86)Common FilesOracleJavajavapath;C:Windowssystem32;C:Windows;C: WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShell v1.0;C:WindowsSystem32OpenSSH;C:Program Files (x86)ATI TechnologiesATI.ACECor
e-Static;C:UsersМелкийAppDataLocalMicrosoftWindowsApps;

Добавлено через 4 минуты
alpap, спасибо, но не помогло. Сначала я так и сделал, но если я вводил «Y», либо «N», то вообще ничего не выходило, батник закрывался.

Добавлено через 1 минуту
W1ldRag3, Кто так вообще пишет? Вы про отступы когда-нибудь слышали? Чтобы логику в виде блоков выделять.

Moxito6, вам бы п. 5.17 правил освоить.

FlasherX
Сначала попробовал, вроде всё по-маслу, но.
Опять-таки почему-то начало не работать ;-;
Я что-то не въезжаю, про какие отступы речь?
Ага, как я понимаю, сделать надо так?

Решение

Решение

Garry Galler, А, НЕТ!ВСЁ ХОРОШО!
Просто я убрал кавычки в «%PartI%»==»Y» в «Y»
И переставил некоторые кавычки.СПАСИБО ОГРОМНОЕ

Добавлено через 5 минут
Garry Galler, я вернул кавычки как было.
Вот так правильно?У меня почему-то выполняеться сразу всё, а не отдельный кусок

Garry Galler, теперь выполняется первое и закрывается командная строка

Добавлено через 20 секунд
Garry Galler, я правильно написал код? или что-то не так?

Добавлено через 2 минуты
Garry Galler, типо вот теперь код(с exit /b)

tick«»rar» не является внутренней или внешней командой, исполняемой программой или пакетным файлом.»
Когда ставил эту винду(ХР), пришлось пару файлов пропустить, диск был немного покоцаный, может быть.

tick«»cp» не является внутренней или внешней командой, исполняемой программой или пакетным файлом.»
Не могу использовать некоторые команды в консоли. Такие команды как dir или cls работают, а вот.

Источник

Не является внутренней или внешней командой, исполняемой программой или пакетным файлом — как исправить?

Как исправить Не является внутренней или внешней командой, исполняемой программой или пакетным файломПри выполнении команд в командной строке Windows 10 и Windows 11 вы можете получить сообщение об ошибке, где указано первое «слово» вашей команды — adb.exe, pip или python, npm или git, java, telnet или любое другое, а далее — не является внутренней или внешней командой, исполняемой программой или пакетным файлом.

В этой инструкции подробно о том, что означает такое сообщение, почему появляется и как исправить ошибку при выполнении наиболее распространённых команд в командной строке.

  • Причины ошибки
  • Способы исправить ошибку Не является внутренней или внешней командой
  • Видео инструкция

Причины ошибки «Не является внутренней или внешней командой» при выполнении команд в командной строке Windows 10 и Windows 11

Для того, чтобы понять суть ошибки, давайте рассмотрим, что происходит при выполнении команды в командной строке, в качестве примера будем использовать такой код:

команда параметр1 параметр2
  1. В случае, если «команда» является собственной встроенной командой консоли (в качестве примера — cls), она выполняется с заданными параметрами.
  2. Если «команда» — это какой-то файл .exe, .cmd, .bat или иной, например, pip, python или adb, выполняется попытка его запуска из расположения, где запущена командная строка (выделено на изображении ниже) или из расположений, добавленных в системную переменную PATH (о которой поговорим подробнее далее). При удачном запуске и правильно переданных параметрах команда выполняется. Не является внутренней или внешней командой, исполняемой программой или пакетным файлом в командной строке

Отсюда следуют наиболее распространённые причины появления ошибки при выполнении команды:

  • Самая распространённая причина — отсутствие исполняемого файла в папке, где запущена командная строка и в папках, содержащихся в PATH.
  • Ошибки при написании команды: при ошибке в имени файла, он не будет найден, что и приведёт к указанной ошибке.
  • Файл отсутствует где-либо, например, вы пробуете использовать telnet, в то время, когда соответствующий компонент Windows не установлен.
  • Редко — запускаемый через командную строку файл действительно не является исполняемой программой: изначально сам по себе или из-за повреждений.

Теперь о том, что делать в рассматриваемой ситуации.

Как исправить ошибку

Для исправления ошибки «Не является внутренней или внешней командой, исполняемой программой или пакетным файлом» в зависимости от ситуации можно использовать следующие подходы.

Переход к папке с исполняемым файлом в командной строке

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

  1. Например, мы знаем, что python.exe для последней версии Python на момент написания этой статьи располагается в папке
    C:Usersимя_пользователяAppDataLocalProgramsPythonPython39

    pip.exe — там же во вложенной папке Scripts (если окажется не ясным, как попасть в эту папку, процесс показан в видео ниже), adb.exe — где-то в папке с platform-tools и так далее. Скопируйте этот путь, сделать это можно из адресной строки проводника.

  2. Если командная строка запущена на том же диске, где находится нужный исполняемый файл, введите команду вида:
    cd полный_путь_к_папке_с_исполняемым_файлом
  3. Если командная строка запущена на диске C:, а исполняемый файл находится на другом диске, то перед 2-м шагом используйте команду вида (здесь D меняем на нужную букву диска) D: с последующим нажатием Enter.
  4. Введите нужную команду, которая ранее сообщала об ошибке — теперь она должна выполниться успешно.

Выполнение команды с указанием папки

Добавление папки с программой в системную переменную среды PATH

В случае, когда использование команд требуется регулярно, например, для git, разумным будет добавить папку с этим исполняемым файлом в PATH, чтобы затем в любой момент времени выполнять команды, независимо от того, в какой папке открыта командная строка:

  1. Введите в поиск на панели задач Windows 10 или Windows 11 «Изменение переменных среды» или нажмите клавиши Win+R, введите sysdm.cpl, нажмите Enter, а в окне свойств системы перейдите на вкладку «Дополнительно». Изменение переменных среды в поиске Windows
  2. Нажмите кнопку «Переменные среды». Открыть параметры системных переменных среды
  3. В следующем окне вы можете добавить папку с исполняемым файлом в переменную PATH только для текущего пользователя или для системы в целом. Выбираем Path в нижней панели и нажимаем «Изменить». Изменить системную переменную PATH
  4. В следующем окне нажимаем «Создать» и вставляем путь к папке с исполняемым файлом, используемом в вашей команде. Добавление папки в системную переменную PATH
  5. Сохраняем настройки. Также следует перезапустить командную строку.

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

Примечание: если ошибка возникает при использовании команд python, обратите внимание, что при первоначальной установке вам предложат добавить необходимые пути в PATH (отметка Add Python to PATH), то же самое часто бывает и при установке других программ:

Добавление Python в PATH при установке

Установка недостающих компонентов

Иногда проблема возникает из-за того, что нужный файл попросту отсутствует на компьютере:

  • Вы пробуете использовать команды telnet, но не зашли в Панель управления —Программы и компоненты — Включение или отключение компонентов Windows и не включили «Клиент Telnet». Включение клиента Telnet
  • Запускаете команды pyinstaller, но предварительно не установили его командой pip install pyinstaller
  • Пробуете использовать команды adb.exe, но не установили необходимые компоненты Android SDK Platform Tools.

Аналогичная ситуация может быть и для многих других, не входящих в стандартную поставку Windows 10 и Windows 11 компонентов, например, java.

Если ошибка возникает при запуске системных инструментов Windows

В ситуации, когда сообщение «Не является внутренней или внешней командой» в командной строке выдается при попытке использовать системные инструменты, такие как sfc /scannow или slmgr:

  1. Внимательно проверьте правильность написания команды: раскладка, пробелы.
  2. Убедитесь, что соответствующие файлы есть в системе (обычно — в C:WindowsSystem32). Попробуйте запустить их напрямую из этой папки (перейдя в папку с помощью cd C:WindowsSystem32) и с указанием расширения, для файлов в примере — sfc.exe и slmgr.vbs
  3. Убедитесь, что в системной переменной среды PATHEXT указаны следующие расширения: .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

Видео инструкция

Надеюсь, статья и видео помогли разобраться с проблемой и помогли в её решении. Остаются вопросы? — задавайте их в комментариях, я постараюсь ответить.

msg.exe is not available on all Windows platforms in all environments.

There is just %SystemRoot%System32msg.exe (64-bit), but no %SystemRoot%SysWOW64msg.exe (32-bit) on Windows 7 x64 Enterprise whereby 64-bit msg.exe must be accessed from within a 32-bit command process by using %SystemRoot%Sysnativemsg.exe.

For details about System32, SysWOW64 and Sysnative see the Microsoft documentation page File System Redirector.

What does this mean?

  1. A batch file being executed on 32-bit Windows needs to run %SystemRoot%System32msg.exe.

  2. A batch file being executed on 64-bit Windows by 64-bit cmd.exe needs to run %SystemRoot%System32msg.exe.

  3. A batch file being executed on 64-bit Windows by 32-bit cmd.exe needs to run %SystemRoot%Sysnativemsg.exe.

It depends on architecture of parent process starting cmd.exe or the batch file which implicitly results in starting cmd.exe for execution of the batch file if the batch file is executed in 32-bit or 64-bit environment on 64-bit Windows.

So a batch file is called with using explicitly %SystemRoot%Sysnativecmd.exe from a 32-bit application on Windows x64 or inside the batch file %SystemRoot%Sysnativemsg.exe is used on a Windows x64 machine while on a Windows x86 machine %SystemRoot%System32cmd.exe respectively %SystemRoot%System32msg.exe must be used.

Demo example for first variant with using 64-bit command line interpreter:

Batch file with name MsgDemo.bat:

@echo off
%SystemRoot%System32msg.exe /?
pause

is called from 32-bit process running on Windows x64 with:

%SystemRoot%Sysnativecmd.exe /C MsgDemo.bat

Demo example for second variant with referencing msg.exe correct:

@echo off
set "AppMsg=%SystemRoot%System32msg.exe"
if not "%ProgramFiles(x86)%" == "" (

    rem Explicitly reference 64-bit version on Windows x64 as there is
    rem no 32-bit version. But use Sysnative redirector only if the batch
    rem file was started with 32-bit cmd.exe as otherwise System32 contains
    rem msg.exe if it is not missing at all like on Windows 7 Home Premium.

    if exist %SystemRoot%Sysnative* set "AppMsg=%SystemRoot%Sysnativemsg.exe"
)
%AppMsg% /?
set "AppMsg="
pause

The redirector %SystemRoot%Sysnative doesn´t exist for 64-bit processes, just for 32-bit processes.

%SystemRoot%Sysnative is not a directory. Therefore if exist %SystemRoot%Sysnative does not work, just if exist %SystemRoot%Sysnative*.

msg.exe is not available on all Windows platforms in all environments.

There is just %SystemRoot%System32msg.exe (64-bit), but no %SystemRoot%SysWOW64msg.exe (32-bit) on Windows 7 x64 Enterprise whereby 64-bit msg.exe must be accessed from within a 32-bit command process by using %SystemRoot%Sysnativemsg.exe.

For details about System32, SysWOW64 and Sysnative see the Microsoft documentation page File System Redirector.

What does this mean?

  1. A batch file being executed on 32-bit Windows needs to run %SystemRoot%System32msg.exe.

  2. A batch file being executed on 64-bit Windows by 64-bit cmd.exe needs to run %SystemRoot%System32msg.exe.

  3. A batch file being executed on 64-bit Windows by 32-bit cmd.exe needs to run %SystemRoot%Sysnativemsg.exe.

It depends on architecture of parent process starting cmd.exe or the batch file which implicitly results in starting cmd.exe for execution of the batch file if the batch file is executed in 32-bit or 64-bit environment on 64-bit Windows.

So a batch file is called with using explicitly %SystemRoot%Sysnativecmd.exe from a 32-bit application on Windows x64 or inside the batch file %SystemRoot%Sysnativemsg.exe is used on a Windows x64 machine while on a Windows x86 machine %SystemRoot%System32cmd.exe respectively %SystemRoot%System32msg.exe must be used.

Demo example for first variant with using 64-bit command line interpreter:

Batch file with name MsgDemo.bat:

@echo off
%SystemRoot%System32msg.exe /?
pause

is called from 32-bit process running on Windows x64 with:

%SystemRoot%Sysnativecmd.exe /C MsgDemo.bat

Demo example for second variant with referencing msg.exe correct:

@echo off
set "AppMsg=%SystemRoot%System32msg.exe"
if not "%ProgramFiles(x86)%" == "" (

    rem Explicitly reference 64-bit version on Windows x64 as there is
    rem no 32-bit version. But use Sysnative redirector only if the batch
    rem file was started with 32-bit cmd.exe as otherwise System32 contains
    rem msg.exe if it is not missing at all like on Windows 7 Home Premium.

    if exist %SystemRoot%Sysnative* set "AppMsg=%SystemRoot%Sysnativemsg.exe"
)
%AppMsg% /?
set "AppMsg="
pause

The redirector %SystemRoot%Sysnative doesn´t exist for 64-bit processes, just for 32-bit processes.

%SystemRoot%Sysnative is not a directory. Therefore if exist %SystemRoot%Sysnative does not work, just if exist %SystemRoot%Sysnative*.

Вопрос:

Пока в cmd или создании командного файла я не могу использовать команду msg. Когда я пытаюсь использовать его, он возвращает ошибку msg is not recognized as an internal or external command, operable program or batch file. “Я уверен, что ошибка в том, что я потерял msg.exe в system32, так что может кто-нибудь показать, как это получить? Я запускаю Windows 8.1.

Лучший ответ:

msg.exe не доступен на всех платформах Windows во всех средах.

Существует только %SystemRoot%System32msg.exe (64-разрядная %SystemRoot%SysWOW64msg.exe), но нет %SystemRoot%SysWOW64msg.exe (32-разрядная версия) для Windows 7 x64 Enterprise, из-за чего необходимо получить доступ к 64-разрядному msg.exe из в 32-битном командном процессе, используя %SystemRoot%Sysnativemsg.exe.

Дополнительные сведения о System32, SysWOW64 и Sysnative см. В статье Microsoft о Sysnative файловой системы

Что это значит?

  1. Для запуска пакетного файла на 32-разрядной Windows необходимо запустить %SystemRoot%System32msg.exe.

  2. Командный файл, выполняемый в 64-разрядной Windows 64-разрядным cmd.exe должен запускать %SystemRoot%System32msg.exe.

  3. Командный файл, выполняемый в 64-разрядной Windows 32-разрядным cmd.exe должен запускать %SystemRoot%Sysnativemsg.exe.

Это зависит от ширины битов родительского процесса, начиная с cmd.exe или командного файла, который неявно приводит к запуску cmd.exe для исполнения командного файла, если пакетный файл выполняется в 32-разрядной или 64-разрядной среде на 64-битной Windows,

Таким образом вызывается пакетный файл с использованием явно %SystemRoot%Sysnativecmd.exe из 32-разрядного приложения в Windows x64 или внутри пакетного файла %SystemRoot%Sysnativemsg.exe используется на машине Windows x64 во время работы необходимо использовать Windows x86 %SystemRoot%System32cmd.exe %SystemRoot%System32msg.exe.

Демо-пример для первого варианта с использованием 64-разрядного интерпретатора командной строки:

Пакетный файл с именем MsgDemo.bat:

@echo off
%SystemRoot%System32msg.exe /?
pause

вызывается из 32-разрядного процесса, выполняющегося в Windows x64, с:

%SystemRoot%Sysnativecmd.exe /C MsgDemo.bat

Демо-пример для второго варианта с правильной ссылкой msg.exe:

@echo off
set "AppMsg=%SystemRoot%System32msg.exe"
if not "%ProgramFiles(x86)%" == "" (

    rem Explicitly reference 64-bit version on Windows x64 as there is
    rem no 32-bit version. But use Sysnative redirector only if the batch
    rem file was started with 32-bit cmd.exe as otherwise System32 contains
    rem msg.exe if it is not missing at all like on Windows 7 Home Premium.

    if exist %SystemRoot%Sysnative* set "AppMsg=%SystemRoot%Sysnativemsg.exe"
)
%AppMsg% /?
set "AppMsg="
pause

Редиректор %SystemRoot%Sysnative не существует для 64-битных процессов, только для 32-битных процессов.

%SystemRoot%Sysnative не является каталогом. Поэтому, if exist %SystemRoot%Sysnative не работает, просто if exist %SystemRoot%Sysnative*.

Ответ №1

Скопируйте файл msg.exe из любого ПК с Windows 7 из каталога system32 и прошлого целевого ПК system32.

Работа для меня отлично

«Имя файла» не является внутренней или внешней командой, исполняемой программой или пакетным файлом

При попытке открыть какую-либо команду через окно служебной программы или консоль, вы сталкиваетесь с ошибкой – «Имя файла» не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Система упрямо не открывает файл по каким-то причинам и этот факт очень раздражает. Причиной этого может быть один из нескольких вариантов: неправильно указан путь к файлу и отсутствие компонента в системе вообще, т.е по указанному адресу его не существует.

Ошибка «Имя файла» не является

Содержание

  1. Основные причины, по которым появляется ошибка «не является внутренней или внешней командой»
  2. Указываем правильный путь в переменной path на ОС Windows 7
  3. Задать переменную «Path» в ОС Windows 8/8.1/10

Основные причины, по которым появляется ошибка «не является внутренней или внешней командой»

Как уже было сказано, одна из причин заключается в неправильном указании пути к открываемому файлу. Обычно путь к файлу прописан в переменной «Path» в системе, должен быть указан строгий путь к директории, в котором размещены нужные файлы. Если имеются какие-то ошибки в настройках при указании пути в переменной, либо при указании имени файла, то система будет выдавать именно такую ошибку – «имя файла» не является внутренней или внешней командой, исполняемой программой.

Первым делом необходимо указать точный путь переменной «Path» операционной системе, чтобы не возникало ошибок при открытии файла. Для этого нужно наверняка знать расположение папки. К примеру, обратимся к программе, которая в дальнейшем будет работать с исполняемым файлом в определенной папке.

Переменная «Path» — это переменная операционной системы, которая служит для того, чтобы найти указанные исполняемые объекты через командную строку или терминал. Найти ее можно в панели управления Windows. В новых версиях Виндовс и других ОС указание вручную обычно не требуется.

Системная переменная Path

Указываем правильный путь в переменной path на ОС Windows 7

Чтобы правильно указать путь необходимо знать точное расположение файла. Если файл программы, который нужно открыть лежит на диске в С:Program FilesJavajdk 1.8.0.45bin, тогда этот путь нужно скопировать и указать в системной переменной для последующего открытия.

  1. Далее нам понадобиться рабочий стол, наводим мышь на «Мой компьютер» и в контекстном меню выбираем «Свойства».
  2. Нажимаем «Дополнительные параметры» слева и выбираем пункт «Переменные среды».
  3. В открывшемся окне ищем строку «Path» нажимаем на нее и вставляем скопированные путь сюда.
  4. Действие нужно подтвердить кнопкой «Ок». Компьютер желательно перезагрузить, чтобы настройки точно вступили в силу. Откройте консоль и вбейте нужную команду. Ошибки быть не должно.Командная строка

В том случае, если ошибка будет появляться снова, попробуйте перенести программу в рабочие директории диска с установленной операционной системой, например /System32. С этой директорией Виндовс работает чаще.

Также ошибки возникают из-за отсутствия компонентов программы. Устранить их можно дополнив нужными. Для примера возьмем компонент «Telnet». Чтобы его включить, перейдите:

  • На «Панель управления».
  • Дальше выберите «Включение и выключение компонентов».
  • Из списка выбираем «Клиент Telnet», напротив ставим галочку и нажимаем «Ок».
  • Компонент должен работать и ошибок возникать больше не должно. Компонент Windows Telnet
    Поставьте галочку рядом с компонентом Windows Telnet

Задать переменную «Path» в ОС Windows 8/8.1/10

  1. Заходим на «Панель управления».
  2. Кликаем ссылку «Дополнительные параметры системы».
  3. Находим «Переменные среды». В этом разделе нужно выбрать «Path». Далее «Изменить», если нет готовой – создать заново.
  4. В пункте «Изменение системной переменной» укажите нужное вам значение и подтвердите кнопкой «Ок». Закрываем и все остальные окна, кликая «Ок».
  5. Откройте заново командную строку или терминал и попробуйте снова ввести ваш запрос. Сейчас должно все работать исправно.

Опубликовано 08.10.2017 Обновлено 25.11.2020

Находясь в cmd или создавая командный файл, я не могу использовать команду msg. Когда я пытаюсь использовать его, он возвращает ошибку msg is not recognized as an internal or external command, operable program or batch file. «Я почти уверен, что ошибка в том, что мне не хватает msg.exe в system32, так что может кто-нибудь показать, как это получить? Я под управлением windows 8.1.

2 ответа

Лучший ответ

msg.exe доступен не на всех платформах Windows во всех средах.

В Windows 7 x64 Enterprise есть только %SystemRoot%System32msg.exe (64-разрядная версия), но нет %SystemRoot%SysWOW64msg.exe (32-разрядная версия), при этом доступ к 64-разрядной версии msg.exe должен осуществляться из 32-разрядной команды. процесс с помощью %SystemRoot%Sysnativemsg.exe.

Подробнее о System32, SysWOW64 и Sysnative см. На странице документации Microsoft Перенаправитель файловой системы.

Что это значит?

  1. Пакетный файл, выполняемый в 32-битной Windows, должен запускать %SystemRoot%System32msg.exe.

  2. Пакетный файл, выполняемый в 64-битной Windows 64-битным cmd.exe, должен запускать %SystemRoot%System32msg.exe.

  3. Пакетный файл, выполняемый в 64-битной Windows 32-битным cmd.exe, должен запускать %SystemRoot%Sysnativemsg.exe.

Это зависит от архитектуры родительского процесса, запускающего cmd.exe или командного файла, который неявно приводит к запуску cmd.exe для выполнения командного файла, если командный файл выполняется в 32-битной или 64-битной среде на 64 -битная винда.

Таким образом, командный файл вызывается с использованием явно %SystemRoot%Sysnativecmd.exe из 32-разрядного приложения в Windows x64 или внутри командного файла %SystemRoot%Sysnativemsg.exe используется на машине Windows x64, а на машине Windows x86 {{X2} } соответственно необходимо использовать %SystemRoot%System32msg.exe.

Демо-пример для первого варианта с использованием 64-битного интерпретатора командной строки:

Пакетный файл с именем MsgDemo.bat:

@echo off
%SystemRoot%System32msg.exe /?
pause

Вызывается из 32-битного процесса, работающего в Windows x64 с:

%SystemRoot%Sysnativecmd.exe /C MsgDemo.bat

Демо-пример для второго варианта с правильной ссылкой на msg.exe:

@echo off
set "AppMsg=%SystemRoot%System32msg.exe"
if not "%ProgramFiles(x86)%" == "" (

    rem Explicitly reference 64-bit version on Windows x64 as there is
    rem no 32-bit version. But use Sysnative redirector only if the batch
    rem file was started with 32-bit cmd.exe as otherwise System32 contains
    rem msg.exe if it is not missing at all like on Windows 7 Home Premium.

    if exist %SystemRoot%Sysnative* set "AppMsg=%SystemRoot%Sysnativemsg.exe"
)
%AppMsg% /?
set "AppMsg="
pause

Редиректор %SystemRoot%Sysnative не существует для 64-битных процессов, только для 32-битных процессов.

%SystemRoot%Sysnative не является каталогом. Следовательно, if exist %SystemRoot%Sysnative не работает, просто if exist %SystemRoot%Sysnative*.


4

Mofi
27 Июн 2020 в 15:49

Скопируйте msg.exe с любого ПК с Windows 7 из каталога system32 и из предыдущего каталога system32 целевого ПК.

У меня отлично работает


1

Ragu. M
1 Дек 2018 в 09:33

MsgОтправка сообщения пользователю.

Синтаксис
msg {имя_пользователя|имя_сеанса|код_сеанса|@имя_файла|*} [/server:имя_сервера] [/time:секунды] [/v] [/w] [сообщение]

Параметры
имя_пользователя
Задает имя пользователя, получающего сообщение.
имя_сеанса
Задает имя сеанса, получающего сообщение.
код_сеанса
Идентифицирует сеанс, пользователь которого получит сообщение.
@имя_файла
Идентифицирует файл, содержащий список имен пользователей, имен сеансов, коды сеансов, которые получат сообщение.
*
Отправляет сообщение всем пользователям в системе.
/server:имя_сервера
Задает сервер терминалов, сеансы или пользователи которого получат сообщение. Если сервер не указан, параметр /server использует текущий сервер.
/time:секунды
Задает время, в течение которого отправленное сообщение будет отображаться на экране пользователя. При завершении этого времени, сообщение пропадает с экрана. Если ограничение времени не задано, то сообщение будет находиться на экране пользователя до тех пор, пока он не нажмет кнопку OK.
/v
Отображает сведения о выполненных действиях.
/w
Устанавливает режим ожидания ответа от пользователя, получившего сообщение. Этот параметр рекомендуется использовать совместно с параметром /time:секунды, чтобы избежать длительной паузы в случае, если пользователь не может ответить немедленно. Можно также использовать этот параметр совместно с параметром /v.
Сообщение
Вводится текст отправляемого сообщения. Если текст сообщения не введен, то система либо попросит сделать это, либо будет использовано стандартное сообщение (а именно STDIN). Чтобы отправить сообщение, содержащее файл, введите символ (>) вслед за именем файла.
/?
Отображает справку в командной строке.
Примечания
Если не задано имя пользователя или сеанса, то команда msg выводит на экран сообщение об ошибке. Если задано имя сеанса, то он должен быть активным.
Для отправки сообщения пользователь должен иметь специальное разрешение.
Примеры
Чтобы отправить сообщение с заголовком «Встречаемся сегодня в 13-00» всем сеансам для пользователя MIKES, введите:

msg MIKES Встречаемся сегодня в 13-00

Чтобы отправить тоже самое сообщение сеансу MODEM02, введите:

msg modem02 Встречаемся сегодня в 13-00

Чтобы отправить сообщение сеансу с кодом 12, введите:

msg 12 Встречаемся сегодня в 13-00

Чтобы отправить сообщение всем сеансам, содержащимся в файле USERLIST, введите:

msg @userlist Встречаемся сегодня в 13-00

Чтобы отправить сообщение всем вошедшим пользователям, введите:

msg * Встречаемся сегодня в 13-00

Чтобы отправить сообщение всем пользователям, установив режим ожидания ответа (например 10 секунд), введите:

msg */TIME:10 Встречаемся сегодня в 13-00

Понравилась статья? Поделить с друзьями:
  • Msg windows 10 не существует или отключен
  • Msftconnecttest com приложение не найдено windows 10
  • Msfs sys синий экран windows 10
  • Msflxgrd ocx скачать для windows 7
  • Msflxgrd ocx скачать windows 10 x64