以前、こんなものを作った。
こんな雑なbatだけど今でも使っている。でもタスクバーにcmdが出っぱなしなのでうざい。間違って閉じてしまうこともある。ということで、改良というより作りなおしてwindows標準のタスクスケジューラに登録するようなものにした。Windows7だと動くと思います。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@ECHO OFF | |
ECHO -------------------------------------------- | |
ECHO 指定時刻にメッセージを表示します | |
ECHO -------------------------------------------- | |
SET /p MESSAGE_TEXT="メッセージを入力して下さい > " | |
SET /p START_TIME="時刻を指定して下さい(ex. 09:15) > " | |
SET TIME2=%time: =0% | |
SET TASK_CREATE_TIME=%TIME2:~0,2%%TIME2:~3,2%%TIME2:~6,2% | |
SET TASK_CREATE_DATE=%date:~-10,4%%date:~-5,2%%date:~-2,2% | |
SET TASK_ID=%USERNAME%-%TASK_CREATE_DATE%%TASK_CREATE_TIME% | |
SCHTASKS /CREATE /SC ONCE /TN %TASK_ID% /TR "msg.exe console "%MESSAGE_TEXT% /ST %START_TIME% /V1 /Z | |
PAUSE |
タスクは実行されたあとに削除されるようになっている(/Zオプション)。ただ/ZオプションをつけただけだとXMLがどうのこうのというエラーが出るので/V1オプションを付けてある。
エラー: タスク XML に必須の要素または属性が含まれていません。 (41,4):EndBoundary:
タスクスケジューラに登録するID文字列を作るときに日付と時間を使ってるんだけど、そのフォーマット指定がえらいことになってる。
それと、結局使ってないけど、コマンドの結果を変数に保存するのにforを使う必要があるらしく、これもやけに大変だな・・・。勉強になるなぁ(白目
@FOR /F "usebackq tokens=*" %%i in (`DATE /T`) DO @SET TASK_CREATE_DATE=%%i
ついでにメモしておくと、unixでいう cat は type、diff は fc、traceroute は tracert、grep は findstr、ifconfig は ipconfig 辺りで代用できるって認識で良いのかね。more、arp、ping、netstat、nslookup なんかは同じのがあるようで。
I am questioning that during this time you must deliver a try and this new app MediBang Paint Apk : which is now maximum trending app inside the global.
返信削除