msg.exe Not available on all Windows platforms in all environments.
%SystemRoot%\System32\msg.exe (64- %SystemRoot%\SysWOW64\msg.exe), %SystemRoot%\SysWOW64\msg.exe (32- ) Windows 7 x64 Enterprise, - 64- msg.exe 32- , %SystemRoot%\Sysnative\msg.exe.
System32, SysWOW64 Sysnative . Microsoft Sysnative
?
32- Windows %SystemRoot%\System32\msg.exe.
, 64- Windows 64- cmd.exe %SystemRoot%\System32\msg.exe.
, 64- Windows 32- cmd.exe %SystemRoot%\Sysnative\msg.exe.
, cmd.exe , cmd.exe , 32- 64- 64- Windows,
%SystemRoot%\Sysnative\cmd.exe 32- Windows x64 %SystemRoot%\Sysnative\msg.exe Windows x64 Windows x86 %SystemRoot%\System32\cmd.exe %SystemRoot%\System32\msg.exe.
- 64- :
MsgDemo.bat:
@echo off
%SystemRoot%\System32\msg.exe /?
pause
32- , Windows x64, :
%SystemRoot%\Sysnative\cmd.exe /C MsgDemo.bat
- msg.exe:
@echo off
set "AppMsg=%SystemRoot%\System32\msg.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%\Sysnative\msg.exe"
)
%AppMsg% /?
set "AppMsg="
pause
%SystemRoot%\Sysnative 64- , 32- .
%SystemRoot%\Sysnative . , if exist %SystemRoot%\Sysnative , if exist %SystemRoot%\Sysnative\*.