Компьютерный форум 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
Почему команда 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.


Время: 02:27.

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