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

Ответить
Аватара пользователя
Dragokas

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

Сообщение Dragokas »

Почему команда MSG из под интерпретатора работает нормально (ПУСК -> Выполнить -> CMD), а

из под CMD-файла выдает: "MSG не является внутренней или внешней командой, исполняемой программой или пакетным файлом"?



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





Код:

Код: Выделить всё

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 - альтернативы.



Все работает только при ручном наборе в ком. строке (Пуск -> Выполнить -> CMD)



P.S. OS Win7 x64 Ultimate ru

Симптом себя проявляет только если запускать скрипт двойным кликом по файлу (от имени Администратора или без).
Вложения
test.rar
(212 байт) 0 скачиваний
test.rar
(212 байт) 0 скачиваний
Аватара пользователя
Molchune

Re: CMD/BAT - [решено] MSG не является внутренней или внешней командой (при запуске из пакетного файла)

Сообщение Molchune »

В файле из архива не работает, а заменив там на код приведенный тобой результат такой:

Изображение

запускал двойным кликом.
Аватара пользователя
fly380

Re: CMD/BAT - [решено] MSG не является внутренней или внешней командой (при запуске из пакетного файла)

Сообщение fly380 »

Petya V4sechkin, посмотрел тему. У меня все верно.

Содержимое Path

C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\ System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\DMIX;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\;C:\Program Files\MySQL\MySQL Server 5.1\bin;C:\WebServers\mysql\bin;C:\WebServers\usr\local\mysql-5.1\bin;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\

Ветка Path с типом REG_EXPAND_SZ.

Команды CHCP и все другие мыслимые работают нормально.

А на MSG выдает "Не знаю я такой команды".

И зачем собственно Path? Ведь MSG - не файл, а внутренняя команда, как я понимаю.

Molchune, Да, пробовал. MSG.exe через CMD работает, через Сall Test.bat из-под этого CMD тоже.

Через клик по файлу - нет.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] MSG не является внутренней или внешней командой (при запуске из пакетного файла)

Сообщение Iska »

Цитата Diskretor:



И зачем собственно Path? Ведь MSG - не файл, а внутренняя команда, как я понимаю.
CMD/BAT - [решено] MSG не является внутренней или внешней командой (при запуске из пакетного файла)




Неправильно понимаете. Внешняя.




читать дальше »




Код:

Код: Выделить всё

╔═════════════════ C:\WINDOWS\system32 ═══╤════════╤═06:49
║и              Имя                │Размер│  Дата  │Время║
║ msexch40                      dll│518944│02.04.07│18:17▲
║ msexcl40                      dll│326432│02.04.07│18:18░
║ msftedit                      dll│539136│14.04.08│21:40░
║►msg                           exe│ 21504│20.10.01│16:00░
║ msg711                        acm│  9216│20.10.01│16:00▓
║ msg723                        acm│118784│20.10.01│16:00░
║ msgina                        dll│ 977 К│14.04.08│21:40░
║ msgsm32                       acm│ 19968│20.10.01│16:00▼
╟──────────────────────────────────┴──────┴────────┴─────╢
║►msg.exe                                                ║
╚═════════ 619,323,367 (2351) ═══ 8,314,589,184 ═════════╝
Аватара пользователя
Petya V4sechkin

Re: CMD/BAT - [решено] MSG не является внутренней или внешней командой (при запуске из пакетного файла)

Сообщение Petya V4sechkin »

Цитата Diskretor:



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



Выложите лог
Process Monitor
при запуске CMD-файла (меню File -> Save -> CSV-формат) в архиве на любой файлообменник.




Цитата Iska:



Внешняя



Кстати, посмотрел в Windows 7 x64 - там Msg.exe есть в папке \Windows\System32, но нет в \Windows\SysWOW64.




Цитата Diskretor:



Симптом себя проявляет только если запускать скрипт двойным кликом по файлу



Запускаете его из проводника?

А не из 32-битного файлового менеджера (типа Total Commander).
Аватара пользователя
Dragokas

Re: CMD/BAT - [решено] MSG не является внутренней или внешней командой (при запуске из пакетного файла)

Сообщение Dragokas »

Цитата Petya V4sechkin:



А не из 32-битного файлового менеджера (типа Total Commander).
CMD/BAT - [решено] MSG не является внутренней или внешней командой (при запуске из пакетного файла)




Именно.



Запуск из под проводника решил проблему.

Что же там такого в TC?



Странно, что с этим Total Commander не так. В проводнике и поиске Windows программу msg.exe видно,

а в проге TC нет и ее поиск не находит.



... решил запуском х64-редакции TC.
Аватара пользователя
Petya V4sechkin

Re: CMD/BAT - [решено] MSG не является внутренней или внешней командой (при запуске из пакетного файла)

Сообщение Petya V4sechkin »

Цитата Diskretor:



В проводнике и поиске Windows программу msg.exe видно,

а в проге TC нет и ее поиск не находит



32-битная программа в принципе не видит папку \Windows\System32 в 64-битной системе.

Почитайте о WOW64. Когда 32-битная программа пытается обратиться к \Windows\System32, операционная система перенаправляет ее в \Windows\SysWOW64 (там находятся 32-битные библиотеки и утилиты).

Как уже было сказано:




Цитата Petya V4sechkin:



посмотрел в Windows 7 x64 - там Msg.exe есть в папке \Windows\System32, но нет в \Windows\SysWOW64



Можно взять Msg.exe из 32-битной системы и скопировать в папку \Windows\SysWOW64.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»