バッチファイルの復習
しばらく触ってないとすぐに忘れてしまう。
Batch ファイルのほかにも WSH (cscript, wscript), PowerShell, IronPython など使えると便利そうなものはあるのだが、果たして勉強するだけの価値があるのやら...
rem batch file test
rem rem, @echo off はよく見かける決まりごと
@echo off
echo -------------------------------------------------------------------------------
echo Batch File Test
echo -------------------------------------------------------------------------------rem pathext は拡張子を省いて実行できる拡張子のリスト
rem では拡張子とその実行ランタイムの関連付けはどこに?
echo pathext contains possible command line file extensions
echo echo %%pathext%%
echo %pathext%rem setlocal test
rem setlocal 内での変数設定は endlocal までのスコープで有効
echo setlocal makes local scope
setlocal
echo set localvar=localvarvalue
set localvar=localvarvalue
echo echo %%localvar%%
echo %localvar%
endlocal
echo exited from local
echo echo %%localvar%%
echo %localvar%rem 変数が空かどうかの判定。
rem if exists ... とか if not ... といった判定も見かける
rem help if で説明は出てくるのだが、正直わかりにくい...
if "%localvar%" == "" goto :localvarNotSet
echo locavar IS SET
goto :localTestDone:localvarNotSet
echo localvar not set:localTestDone
rem parameters
echo %%1
echo %1
echo show all param -- %%*
echo %*rem call test
rem call でバッチファイルを呼ぶとちょうど sh でソースしたような感じ
echo calling batch with call
call subscript
echo lookup up ssvalue
echo %ssvalue%
echo calling batch as command
rem バッチファイルを call なしで呼ぶと返ってこない。exec のような感じ
subscript
echo looking up ssvalue
echo %ssvalue%echo returned from invocation