2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« 標準出力と標準エラーを非同期にMessageBoxに出す。 | トップページ | MHTMLファイルのファイル名に#があると、IEで開けない。(障害) »

2007年9月 4日 (火)

バッチファイルをウィンドウアプリっぽくする。

JScript.NETのコンパイラはPATHにないので、以下のバッチファイルを作ります。

JSC.CMD ソースファイル

@ECHO OFF
SETLOCAL
(SET DOTNET=%SystemRoot%\Microsoft.NET\Framework)
FOR /F "delims=" %%1 IN ('DIR /AD /B /ON "%DOTNET%\v*"') DO IF EXIST "%DOTNET%\%%~1\jsc.exe" (SET DOTNET=%DOTNET%\%%~1\jsc.exe)
ECHO ON
"%DOTNET%" /nologo /t:winexe /out:"%~dpn1.exe" "%~f1"

これにソースファイルをドロップすると、結果不明でコンソールが閉じてしまいます。:-(
あまり、ぱっとしませんが、最後にPAUSEを入れる?

いえいえ、ここでは、先のウィンドウアプリ版のmessagbox.exeを利用します。

次の1行をバッチファイルの先頭に追加します。

@if not "%~0"=="%~dp0.\%~nx0" "%~dp0.\%~nx0" %* 2>&1 | messagebox.exe & goto :eof

このバッチファイルにソースファイルをドロップすると、結果がメッセージボックスに表示されます。
コンパイル中、コンソールが開きます。:-p

次の1行に変えると、コンソールが一瞬開きますが、すぐ最小化されて、その後、閉じます。

@if not "%~0"=="%~dp0.\%~nx0" start /min cmd.exe /c,"%~dp0.\%~nx0" %* 2^>^&1 ^| messagebox.exe & goto :eof

« 標準出力と標準エラーを非同期にMessageBoxに出す。 | トップページ | MHTMLファイルのファイル名に#があると、IEで開けない。(障害) »