Dragokas 17954 / 7591 / 889 Регистрация: 25.12.2011 Сообщений: 11,321 Записей в блоге: 17 |
||||||
1 |
||||||
08.08.2012, 23:11. Показов 22079. Ответов 20 Метки нет (Все метки)
Голову сломил. Почему команда MSG из под интерпретатора работает нормально (ПУСК -> Выполнить -> CMD), а Какие варианты только не пробовал (с расширенной обработкой и без нее):
Здесь строка № 1 — опционально (пробовал с ней и без нее). Все работает только при ручном наборе в ком. строке. P.S. OS Win7 x64 Ultimate ru Вложения
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
08.08.2012, 23:11 |
20 |
Почетный модератор 28037 / 15768 / 981 Регистрация: 15.09.2009 Сообщений: 67,753 Записей в блоге: 78 |
|
09.08.2012, 00:17 |
2 |
интересный вопрос… он задавался на форуме, к сожалению не удалось это сделать на удаленный комп… на локальный работает. то есть MSG отправляет всем сеансам на локальном компе… но никак на удаленный…
0 |
8376 / 3598 / 419 Регистрация: 03.07.2009 Сообщений: 10,708 |
|
09.08.2012, 00:18 |
3 |
У меня все работает. Может у тебя %PATH% кривой? Хотя странно, что из cmd все норм…
0 |
Почетный модератор 28037 / 15768 / 981 Регистрация: 15.09.2009 Сообщений: 67,753 Записей в блоге: 78 |
|
09.08.2012, 00:21 |
4 |
на локаль посылается…
0 |
17954 / 7591 / 889 Регистрация: 25.12.2011 Сообщений: 11,321 Записей в блоге: 17 |
|
09.08.2012, 01:08 [ТС] |
5 |
M128K145, так и у меня с консоли работает. Запихаю в файл Test.CMD или Test.bat пишет «Не знаю я такой команды».
Может у тебя %PATH% кривой? Вроде нормальный. Да хоть нулевой. Нет такого файла в системе «msg.exe», то есть это внутренняя команда, которая должна выполняться в обязательном порядке. magirus, я никуда не отправляю. У меня на своей локальной машине пишет — скриншот: Миниатюры
0 |
Dragokas 17954 / 7591 / 889 Регистрация: 25.12.2011 Сообщений: 11,321 Записей в блоге: 17 |
||||||||
09.08.2012, 01:31 [ТС] |
6 |
|||||||
Симптом себя проявляет только если запускать скрипт двойным кликом по файлу (от имени Администратора или без).
а затем вручную написать в открывшуюся консоль
получим бубен Имеем какую-то иную среду. M128K145, P.S. Выполнить -> СMD {Enter} -> Call Test.CMD у меня тоже работает.
0 |
8376 / 3598 / 419 Регистрация: 03.07.2009 Сообщений: 10,708 |
|
09.08.2012, 01:46 |
7 |
Dragokas, а что у тебя в реестре находится в ветках HKEY_CLASSES_ROOTcmdfileshellopencommand и HKEY_CLASSES_ROOTbatfileshellopencommand
0 |
17954 / 7591 / 889 Регистрация: 25.12.2011 Сообщений: 11,321 Записей в блоге: 17 |
|
09.08.2012, 01:52 [ТС] |
8 |
В обоих значения «По-умолчанию»:
0 |
17954 / 7591 / 889 Регистрация: 25.12.2011 Сообщений: 11,321 Записей в блоге: 17 |
|
09.08.2012, 02:18 [ТС] |
9 |
Сравнительный анализ переменных окружения (команда SET). Миниатюры
0 |
1778 / 760 / 130 Регистрация: 09.04.2011 Сообщений: 1,325 |
|
10.08.2012, 00:03 |
10 |
Dragokas, у меня всё нормально работает http://savepic.org/2445721.jpg
1 |
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 его не видит и его встроенный поиск тоже. …Решилось запуском х64-битной редакции TC.
3 |
8376 / 3598 / 419 Регистрация: 03.07.2009 Сообщений: 10,708 |
|
11.08.2012, 02:19 |
12 |
Dragokas, с этого и надо было начинать Осталось только выяснить почему так происходит, ведь set практически одинаков и там, и там
0 |
17954 / 7591 / 889 Регистрация: 25.12.2011 Сообщений: 11,321 Записей в блоге: 17 |
|
11.08.2012, 02:57 [ТС] |
13 |
Всегда доверял этому TC. Подумал, что тут такого.
Осталось только выяснить почему так происходит Виновато так называемое перенаправление файловой системы.
2 |
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 |
на локаль посылается… необходимо убедиться в правильности настройки:
1 |
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
0 |
Dragokas 17954 / 7591 / 889 Регистрация: 25.12.2011 Сообщений: 11,321 Записей в блоге: 17 |
||||
08.02.2014, 14:20 [ТС] |
18 |
|||
YupiRex, команда start, будучи запущенной от имени 32-разрядного процесса, также будет перенимать разрядность, а значит на нее тоже будет действовать правило файловой переадресации. Можете попробовать ввести
в 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 |
P.S. Поиск по dir /a-d/b/s %windir%*msg.exe ничего не найдет, т.к. будет всегда глядеть в SysWOW64. у меня находит Миниатюры
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 |
Содержание
- Msg не является внутренней или внешней командой windows 10
- Запуск MSG /? на коробке Win 10 сказал, что MSG не был признан командой
- Не является внутренней или внешней командой
- «Имя файла» не является внутренней или внешней командой, исполняемой программой или пакетным файлом
- Основные причины, по которым появляется ошибка «не является внутренней или внешней командой»
- Указываем правильный путь в переменной path на ОС Windows 7
- «.» не является внутренней или внешней командой. Как обойти?
- Else не является внутренней или внешней командой
- Решение
- Решение
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
Какие другие команды должны сделать то же самое волшебство, чтобы они работали из обычной командной строки?
Этот вопрос «слишком широкий».
Источник
Не является внутренней или внешней командой
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Else не является внутренней или внешней командой
Здравствуйте, недавно захотелось создать батник по оптимизации ПК(я в этом деле новичок, не судите.
Ошибка в паттерне sed. png не является внутренней или внешней командой, исполняемой программой или пакентным файлом
Здравствуйте. Использую cygwin, поэтому могу использовать sed. Не знаю, правильный ли это.
Сообщение об ошибке «. не является внутренней или внешней командой. » при вызове javac и preverify
Ошибка, вроде типичная, пишет, что эти команды не являются внутренней или внешней командой и т.д.
Вложения
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 после его работы вернулись в меню и т.д.
Источник
«Имя файла» не является внутренней или внешней командой, исполняемой программой или пакетным файлом
При попытке открыть какую-либо команду через окно служебной программы или консоль, вы сталкиваетесь с ошибкой – «Имя файла» не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Система упрямо не открывает файл по каким-то причинам и этот факт очень раздражает. Причиной этого может быть один из нескольких вариантов: неправильно указан путь к файлу и отсутствие компонента в системе вообще, т.е по указанному адресу его не существует.
Основные причины, по которым появляется ошибка «не является внутренней или внешней командой»
Как уже было сказано, одна из причин заключается в неправильном указании пути к открываемому файлу. Обычно путь к файлу прописан в переменной «Path» в системе, должен быть указан строгий путь к директории, в котором размещены нужные файлы. Если имеются какие-то ошибки в настройках при указании пути в переменной, либо при указании имени файла, то система будет выдавать именно такую ошибку – «имя файла» не является внутренней или внешней командой, исполняемой программой.
Первым делом необходимо указать точный путь переменной «Path» операционной системе, чтобы не возникало ошибок при открытии файла. Для этого нужно наверняка знать расположение папки. К примеру, обратимся к программе, которая в дальнейшем будет работать с исполняемым файлом в определенной папке.
Переменная «Path» — это переменная операционной системы, которая служит для того, чтобы найти указанные исполняемые объекты через командную строку или терминал. Найти ее можно в панели управления Windows. В новых версиях Виндовс и других ОС указание вручную обычно не требуется.
Указываем правильный путь в переменной path на ОС Windows 7
Чтобы правильно указать путь необходимо знать точное расположение файла. Если файл программы, который нужно открыть лежит на диске в С:Program FilesJavajdk 1.8.0.45bin, тогда этот путь нужно скопировать и указать в системной переменной для последующего открытия.
В том случае, если ошибка будет появляться снова, попробуйте перенести программу в рабочие директории диска с установленной операционной системой, например /System32. С этой директорией Виндовс работает чаще.
Также ошибки возникают из-за отсутствия компонентов программы. Устранить их можно дополнив нужными. Для примера возьмем компонент «Telnet». Чтобы его включить, перейдите:
Поставьте галочку рядом с компонентом 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.9miktexbinx64: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;
Помощь в написании контрольных, курсовых и дипломных работ здесь.
«Installapp.exe» не является внутренней или внешней командой
Здравствуйте я столкнулся с такой проблемой. Что делать?
«net» не является внутренней или внешней командой
Выполняю на windows10, с cmd или bat особо не знаком. Хочу сменить имя пользователя, пишу.
» » не является внутренней или внешней командой
Пытаюсь воспользоваться командой CON. Перехожу в папку с файлами CD.
Источник
Else не является внутренней или внешней командой
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Не является внутренней или внешней командой
Подскажите, из-за чего возникает проблема с «любая команда bat» не является внутренней или внешней.
Ошибка в паттерне 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)
«»rar» не является внутренней или внешней командой, исполняемой программой или пакетным файлом.»
Когда ставил эту винду(ХР), пришлось пару файлов пропустить, диск был немного покоцаный, может быть.
«»cp» не является внутренней или внешней командой, исполняемой программой или пакетным файлом.»
Не могу использовать некоторые команды в консоли. Такие команды как dir или cls работают, а вот.
Источник
Не является внутренней или внешней командой, исполняемой программой или пакетным файлом — как исправить?
При выполнении команд в командной строке Windows 10 и Windows 11 вы можете получить сообщение об ошибке, где указано первое «слово» вашей команды — adb.exe, pip или python, npm или git, java, telnet или любое другое, а далее — не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
В этой инструкции подробно о том, что означает такое сообщение, почему появляется и как исправить ошибку при выполнении наиболее распространённых команд в командной строке.
- Причины ошибки
- Способы исправить ошибку Не является внутренней или внешней командой
- Видео инструкция
Причины ошибки «Не является внутренней или внешней командой» при выполнении команд в командной строке Windows 10 и Windows 11
Для того, чтобы понять суть ошибки, давайте рассмотрим, что происходит при выполнении команды в командной строке, в качестве примера будем использовать такой код:
команда параметр1 параметр2
- В случае, если «команда» является собственной встроенной командой консоли (в качестве примера — cls), она выполняется с заданными параметрами.
- Если «команда» — это какой-то файл .exe, .cmd, .bat или иной, например, pip, python или adb, выполняется попытка его запуска из расположения, где запущена командная строка (выделено на изображении ниже) или из расположений, добавленных в системную переменную PATH (о которой поговорим подробнее далее). При удачном запуске и правильно переданных параметрах команда выполняется.
Отсюда следуют наиболее распространённые причины появления ошибки при выполнении команды:
- Самая распространённая причина — отсутствие исполняемого файла в папке, где запущена командная строка и в папках, содержащихся в PATH.
- Ошибки при написании команды: при ошибке в имени файла, он не будет найден, что и приведёт к указанной ошибке.
- Файл отсутствует где-либо, например, вы пробуете использовать telnet, в то время, когда соответствующий компонент Windows не установлен.
- Редко — запускаемый через командную строку файл действительно не является исполняемой программой: изначально сам по себе или из-за повреждений.
Теперь о том, что делать в рассматриваемой ситуации.
Как исправить ошибку
Для исправления ошибки «Не является внутренней или внешней командой, исполняемой программой или пакетным файлом» в зависимости от ситуации можно использовать следующие подходы.
Переход к папке с исполняемым файлом в командной строке
Если выполнение команды требуется не на регулярной основе, достаточно перейти в командной строке в папку, содержащую нужный файл, делается это следующим образом:
- Например, мы знаем, что python.exe для последней версии Python на момент написания этой статьи располагается в папке
C:Usersимя_пользователяAppDataLocalProgramsPythonPython39
pip.exe — там же во вложенной папке Scripts (если окажется не ясным, как попасть в эту папку, процесс показан в видео ниже), adb.exe — где-то в папке с platform-tools и так далее. Скопируйте этот путь, сделать это можно из адресной строки проводника.
- Если командная строка запущена на том же диске, где находится нужный исполняемый файл, введите команду вида:
cd полный_путь_к_папке_с_исполняемым_файлом
- Если командная строка запущена на диске C:, а исполняемый файл находится на другом диске, то перед 2-м шагом используйте команду вида (здесь D меняем на нужную букву диска) D: с последующим нажатием Enter.
- Введите нужную команду, которая ранее сообщала об ошибке — теперь она должна выполниться успешно.
Добавление папки с программой в системную переменную среды PATH
В случае, когда использование команд требуется регулярно, например, для git, разумным будет добавить папку с этим исполняемым файлом в PATH, чтобы затем в любой момент времени выполнять команды, независимо от того, в какой папке открыта командная строка:
- Введите в поиск на панели задач Windows 10 или Windows 11 «Изменение переменных среды» или нажмите клавиши Win+R, введите sysdm.cpl, нажмите Enter, а в окне свойств системы перейдите на вкладку «Дополнительно».
- Нажмите кнопку «Переменные среды».
- В следующем окне вы можете добавить папку с исполняемым файлом в переменную PATH только для текущего пользователя или для системы в целом. Выбираем Path в нижней панели и нажимаем «Изменить».
- В следующем окне нажимаем «Создать» и вставляем путь к папке с исполняемым файлом, используемом в вашей команде.
- Сохраняем настройки. Также следует перезапустить командную строку.
Готово: если всё было указано верно, теперь вы сможете выполнять соответствующие команды без указания полного пути к исполняемым файлам, а сообщение об ошибке появляться не будет.
Примечание: если ошибка возникает при использовании команд python, обратите внимание, что при первоначальной установке вам предложат добавить необходимые пути в PATH (отметка Add Python to PATH), то же самое часто бывает и при установке других программ:
Установка недостающих компонентов
Иногда проблема возникает из-за того, что нужный файл попросту отсутствует на компьютере:
- Вы пробуете использовать команды telnet, но не зашли в Панель управления —Программы и компоненты — Включение или отключение компонентов Windows и не включили «Клиент Telnet».
- Запускаете команды pyinstaller, но предварительно не установили его командой pip install pyinstaller
- Пробуете использовать команды adb.exe, но не установили необходимые компоненты Android SDK Platform Tools.
Аналогичная ситуация может быть и для многих других, не входящих в стандартную поставку Windows 10 и Windows 11 компонентов, например, java.
Если ошибка возникает при запуске системных инструментов Windows
В ситуации, когда сообщение «Не является внутренней или внешней командой» в командной строке выдается при попытке использовать системные инструменты, такие как sfc /scannow или slmgr:
- Внимательно проверьте правильность написания команды: раскладка, пробелы.
- Убедитесь, что соответствующие файлы есть в системе (обычно — в C:WindowsSystem32). Попробуйте запустить их напрямую из этой папки (перейдя в папку с помощью cd C:WindowsSystem32) и с указанием расширения, для файлов в примере — sfc.exe и slmgr.vbs
- Убедитесь, что в системной переменной среды 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?
-
A batch file being executed on 32-bit Windows needs to run
%SystemRoot%System32msg.exe
. -
A batch file being executed on 64-bit Windows by 64-bit
cmd.exe
needs to run%SystemRoot%System32msg.exe
. -
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?
-
A batch file being executed on 32-bit Windows needs to run
%SystemRoot%System32msg.exe
. -
A batch file being executed on 64-bit Windows by 64-bit
cmd.exe
needs to run%SystemRoot%System32msg.exe
. -
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
файловой системы
Что это значит?
-
Для запуска пакетного файла на 32-разрядной Windows необходимо запустить
%SystemRoot%System32msg.exe
. -
Командный файл, выполняемый в 64-разрядной Windows 64-разрядным
cmd.exe
должен запускать%SystemRoot%System32msg.exe
. -
Командный файл, выполняемый в 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.
Работа для меня отлично
«Имя файла» не является внутренней или внешней командой, исполняемой программой или пакетным файлом
При попытке открыть какую-либо команду через окно служебной программы или консоль, вы сталкиваетесь с ошибкой – «Имя файла» не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Система упрямо не открывает файл по каким-то причинам и этот факт очень раздражает. Причиной этого может быть один из нескольких вариантов: неправильно указан путь к файлу и отсутствие компонента в системе вообще, т.е по указанному адресу его не существует.
Содержание
- Основные причины, по которым появляется ошибка «не является внутренней или внешней командой»
- Указываем правильный путь в переменной path на ОС Windows 7
- Задать переменную «Path» в ОС Windows 8/8.1/10
Основные причины, по которым появляется ошибка «не является внутренней или внешней командой»
Как уже было сказано, одна из причин заключается в неправильном указании пути к открываемому файлу. Обычно путь к файлу прописан в переменной «Path» в системе, должен быть указан строгий путь к директории, в котором размещены нужные файлы. Если имеются какие-то ошибки в настройках при указании пути в переменной, либо при указании имени файла, то система будет выдавать именно такую ошибку – «имя файла» не является внутренней или внешней командой, исполняемой программой.
Первым делом необходимо указать точный путь переменной «Path» операционной системе, чтобы не возникало ошибок при открытии файла. Для этого нужно наверняка знать расположение папки. К примеру, обратимся к программе, которая в дальнейшем будет работать с исполняемым файлом в определенной папке.
Переменная «Path» — это переменная операционной системы, которая служит для того, чтобы найти указанные исполняемые объекты через командную строку или терминал. Найти ее можно в панели управления Windows. В новых версиях Виндовс и других ОС указание вручную обычно не требуется.
Указываем правильный путь в переменной path на ОС Windows 7
Чтобы правильно указать путь необходимо знать точное расположение файла. Если файл программы, который нужно открыть лежит на диске в С:Program FilesJavajdk 1.8.0.45bin, тогда этот путь нужно скопировать и указать в системной переменной для последующего открытия.
- Далее нам понадобиться рабочий стол, наводим мышь на «Мой компьютер» и в контекстном меню выбираем «Свойства».
- Нажимаем «Дополнительные параметры» слева и выбираем пункт «Переменные среды».
- В открывшемся окне ищем строку «Path» нажимаем на нее и вставляем скопированные путь сюда.
- Действие нужно подтвердить кнопкой «Ок». Компьютер желательно перезагрузить, чтобы настройки точно вступили в силу. Откройте консоль и вбейте нужную команду. Ошибки быть не должно.
В том случае, если ошибка будет появляться снова, попробуйте перенести программу в рабочие директории диска с установленной операционной системой, например /System32. С этой директорией Виндовс работает чаще.
Также ошибки возникают из-за отсутствия компонентов программы. Устранить их можно дополнив нужными. Для примера возьмем компонент «Telnet». Чтобы его включить, перейдите:
- На «Панель управления».
- Дальше выберите «Включение и выключение компонентов».
- Из списка выбираем «Клиент Telnet», напротив ставим галочку и нажимаем «Ок».
- Компонент должен работать и ошибок возникать больше не должно.
Поставьте галочку рядом с компонентом Windows Telnet
Задать переменную «Path» в ОС Windows 8/8.1/10
- Заходим на «Панель управления».
- Кликаем ссылку «Дополнительные параметры системы».
- Находим «Переменные среды». В этом разделе нужно выбрать «Path». Далее «Изменить», если нет готовой – создать заново.
- В пункте «Изменение системной переменной» укажите нужное вам значение и подтвердите кнопкой «Ок». Закрываем и все остальные окна, кликая «Ок».
- Откройте заново командную строку или терминал и попробуйте снова ввести ваш запрос. Сейчас должно все работать исправно.
Опубликовано 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 Перенаправитель файловой системы.
Что это значит?
-
Пакетный файл, выполняемый в 32-битной Windows, должен запускать
%SystemRoot%System32msg.exe
. -
Пакетный файл, выполняемый в 64-битной Windows 64-битным
cmd.exe
, должен запускать%SystemRoot%System32msg.exe
. -
Пакетный файл, выполняемый в 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