Archive for 11 月, 2007

曜日判定(cmd)

木曜日, 11 月 1st, 2007

我がチームに開発環境サーバー(Windows2003サーバー)がやってきた。
今あるサーバーは全て2000サーバーで、それで開発している。で2000サーバーで出来ていたことが200参サーバーでは出来なくなることもいろいろ予想できる。そしていきなりそれに出会った。
バッチで曜日を判断して処理をするしないというところがあって、2000は問題ないのだが、2003だと曜日をだしてくれないのだ。ためしにコマンドで、date と叩いてみるとわかる。
2000は、
現在の日付: 2007/10/18 木
↑こう表示される。
2003は、
現在の日付: 2007/10/18
↑曜日がない・・・
困った困ったでググる。。。。。。。。VBSを使う??とできるようなことがでてきたのでやってみる。中身は、下記1文。拡張子は.vbs。
WScript.Quit(WeekDay(Date))
このVBSを実行して%ERRORLEVEL%を拾って曜日を判断するという手法。バッチファイルを作成しhomedir、ファイル名等設定。
cscript /b フルパスファイル名.vbs
if %errorlevel%==7 set WDAY=土曜日
if %errorlevel%==6 set WDAY=金曜日
if %errorlevel%==5 set WDAY=木曜日
if %errorlevel%==4 set WDAY=水曜日
if %errorlevel%==3 set WDAY=火曜日
if %errorlevel%==2 set WDAY=月曜日
if %errorlevel%==1 set WDAY=日曜日
echo.%WDAY%> フルパスログファイル名.log
echoで吐き出されたログファイルにバッチを実行した日の曜日がかかれている。2000、2003ともに動作OKという事でジッソー!

LOG吐き出し(コマンド)

木曜日, 11 月 1st, 2007

コピーコマンド 
copy AFile Bfile > LogFile
を実行した時、
ファイルがあると「        1 個のファイルをコピーしました。」
ファイルがないと「指定されたファイルが見つかりません。」
とLogFileに書き出される。
しかし、
del AFile > LogFile
とファイル削除コマンドを実行するとファイルがあってもなくても何も書き出されない。
ただし%ERRORLEVEL%は取得する。ファイルを削除した⇒0、ファイルが無かった⇒1
rename AFile BFile > LogFile
と名前の変更をかけてもdelと同じ結果で何も吐き出されず、%ERRORLEVEL%のみ取得する。
move AFile BFile > LogFile
これも一緒。。。
%ERRORLEVEL%を拾うのは簡単だけどLogFileに吐き出してほしい・・・