久しぶりに書くし、バッチも久しぶりに書くし
久しぶりにブログを書いているのですが、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% ECHO IP取得 : ipconfig >> %LOG_FILE% ECHO Ping試験_1:ping 192.168.21.254 >> %LOG_FILE%
|
これも、元々ネットワークを教えてくれた僕より若かった子のを参考に作りました。
ちなみに、echo:>> %LOG_FILE% は、ログファイルに改行をいれたいので、入れています。
今は、PowerShellでやったほうが良いのでしょうが、使えない事情があって、バッチファイルを使ってやってみました。