久しぶりにブログを書いているのですが、11月12月が久しぶりに濃厚な日々で、年始の仕事の準備もそれなりに忙しい感じです。

 

急にこんな事になったので、ちょっとパニクリましたが、やはり仕事があるのはありがたい事です。

 

ただ、試験用のバッチファイルを作成しようとして、久しぶり過ぎて、書き方を忘れていて恥ずかしかったです。

 

ただ単に、バッチを動作させた後自動的に、ログファイル名に、コンピュータ名と日付を付けるようにしたかったのですが、日付を付けるとうまく動作しない・・・・・

 

当たり前の事ですが、ファイル名とかに「/」がついていてはいけないのですが、何も考えなさすぎて、dateをそのまま使った為、そんなファイルはない!!ってな事をいわれました。

 

実際 Windowsでdateってやると下記のように表示されます

C:\Users\mh\Desktop>echo %date%
2015/12/24

このように、スラッシュ入りになってしまう為、ダメってことでした。普通に皆が知っていることですが、すっかり忘れていました。はずかしい(´Д`)

 

色々なサイトに書いてあることですが、バッチファイル内のログファイルの設定を以下のようにしました。

SET fdate=%date:~-10,4%%date:~-5,2%%date:~-2,2%
SET  LOG_File=%fdate%_%COMPUTERNAME%.log.txt

LOG_Fileという引数で、ログファイルを設定したのですが。%fdate% で日付、%COMPUTERNAME%でコンピュータ名を指定しています。

 

fdateは、一行目で設定していますが、

%date:~-10,4% は後ろから10文字目から4文字分を取り出す

%date:~-5,2%  は後ろから、5文字目から2文字分取り出す

%date:~-2,2% は後ろから、2文字目から2文字取り出す

ってことを書いています。

 

実際どうなるかというと

C:\Users\mh\Desktop>echo %date:~-10,4%%date:~-5,2%%date:~-2,2%
20151224

って感じにスラッシュ抜きになります。

 

こんな事をわざわざ書かなくても皆が知っているのですが、忘れてしまった為に、忘備録で書いておきます。

 

ついでなんで、実際にPing試験とかの場合はこんな感じで設定し、動作させました。

SET fdate=%date:~-10,4%%date:~-5,2%%date:~-2,2%
SET  LOG_File=%fdate%_%COMPUTERNAME%.log.txt


ECHO IP取得 : ipconfig >> %LOG_FILE%
ipconfig >> %LOG_FILE%
ECHO ======================================== >> %LOG_FILE%
echo:>> %LOG_FILE%
echo:>> %LOG_FILE%


ECHO Ping試験_1:ping 192.168.21.254 >> %LOG_FILE%
ping 192.168.21.254 >> %LOG_File%
ECHO ======================================== >> %LOG_FILE%
echo:>> %LOG_FILE%
echo:>> %LOG_FILE%


ECHO ---- "%LOG_FILE%" -- ----
TYPE %LOG_FILE% | MORE

 

これも、元々ネットワークを教えてくれた僕より若かった子のを参考に作りました。

 

ちなみに、echo:>> %LOG_FILE% は、ログファイルに改行をいれたいので、入れています。

 

今は、PowerShellでやったほうが良いのでしょうが、使えない事情があって、バッチファイルを使ってやってみました。