Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] MSG не является внутренней или внешней командой (при запуске из пакетного файла) (http://forum.oszone.net/showthread.php?t=240236)

Dragokas 09-08-2012 01:43 1967123

MSG не является внутренней или внешней командой (при запуске из пакетного файла)
 
Вложений: 1
  • test.rar (212 bytes, скачиваний: 36)
Почему команда 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 1967201

[решено] 'chcp" не является внутренней командой или глюки cmd

Molchune 09-08-2012 11:37 1967276

а не пробовал просто сделать msg.exe

fly380 09-08-2012 16:35 1967482

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

запускал двойным кликом.

Dragokas 10-08-2012 04:23 1967842

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 1967862

Цитата:

Цитата Diskretor
И зачем собственно 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 1967867

Цитата:

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

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

Цитата:

Цитата Iska
Внешняя

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

Цитата:

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

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

Dragokas 11-08-2012 02:07 1968378

Цитата:

Цитата Petya V4sechkin
А не из 32-битного файлового менеджера (типа Total Commander). »

Именно.

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

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

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

Petya V4sechkin 11-08-2012 06:54 1968392

Цитата:

Цитата 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.


Время: 19:02.

Время: 19:02.
© OSzone.net 2001-