PDA

Показать полную графическую версию : [решено] MSG не является внутренней или внешней командой (при запуске из пакетного файла)


Dragokas
09-08-2012, 01:43
Почему команда 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
Симптом себя проявляет только если запускать скрипт двойным кликом по файлу (от имени Администратора или без).

Petya V4sechkin
09-08-2012, 09:43
[решено] 'chcp" не является внутренней командой или глюки cmd (http://forum.oszone.net/thread-219637.html)

Molchune
09-08-2012, 11:37
а не пробовал просто сделать msg.exe

fly380
09-08-2012, 16:35
В файле из архива не работает, а заменив там на код приведенный тобой результат такой:
http://img38.imageshack.us/img38/7169/31888023.png
запускал двойным кликом.

Dragokas
10-08-2012, 04:23
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
10-08-2012, 06:50
И зачем собственно Path? Ведь 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
10-08-2012, 07:01
из под CMD-файла выдает: "MSG не является внутренней или внешней командой
Выложите лог Process Monitor (http://technet.microsoft.com/ru-ru/sysinternals/bb896645) при запуске CMD-файла (меню File -> Save -> CSV-формат) в архиве на любой файлообменник.

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

Симптом себя проявляет только если запускать скрипт двойным кликом по файлу
Запускаете его из проводника?
А не из 32-битного файлового менеджера (типа Total Commander).

Dragokas
11-08-2012, 02:07
А не из 32-битного файлового менеджера (типа Total Commander). »
Именно.

Запуск из под проводника решил проблему.
Что же там такого в TC?

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

... решил запуском х64-редакции TC.

Petya V4sechkin
11-08-2012, 06:54
В проводнике и поиске Windows программу msg.exe видно,
а в проге TC нет и ее поиск не находит
32-битная программа в принципе не видит папку \Windows\System32 в 64-битной системе.
Почитайте о WOW64. Когда 32-битная программа пытается обратиться к \Windows\System32, операционная система перенаправляет ее в \Windows\SysWOW64 (там находятся 32-битные библиотеки и утилиты).
Как уже было сказано:

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




© OSzone.net 2001-2012