ようこそゲストさん

Super Neurotic Junction

メッセージ欄

2011年12月の日記

一覧で表示する

2011/12/26(月) batファイルでメッセージを出す方法

2011/12/26 13:45 研究課題snjx
あー。

いまどきの人って、windowsのバッチファイルなんて使うのかしらなどという疑問は置いておいて。

以前に書いたWindowsってsleepコマンドないんだねーの応用編として、バッチファイルからメッセージボックスのポップアップを出す方法をかいておく。

まぁ、簡単な話で、以下のような感じ。
echo msgbox "メッセージよぉん",vbCritical,"タイトルよぉん" > %TEMP%/msgboxtest.vbs & %TEMP%/msgboxtest.vbs
この内容のバッチファイルを作って実行すると、以下のような感じの画面が出てくる。
msgboxtest.PNG

このワンライナーはいろいろ応用が利きそう。

1: 通りすがり 『すっげぇΣ(・ω・ノ)ノ batにたった1行でポップアップが組み込める! ありがたく使わせていただきます!』 (2013/03/06 10:22)

2: 企業内システム管理者 『まさに探していた例文でした。感謝!』 (2013/04/04 12:11)

3: snjx 『あらまぁこんな古いコンテンツへようこそ。 お役に立てればこれ幸い。 …てことは、あれ?batファイルって結構使ってんのかな。』 (2013/04/22 18:49)

4: ポップマン 『デモで「ポップアップが出たら○○する」という条件を作りたくてこちらに辿り着きました。以前までは、バッチ内で"msg"コマンドを使...』 (2013/07/08 14:58)

5: snjx 『今年に入ってどうしたことでしょうか。 バッチファイルはやってんの?まじ? いや、みなさんそんな断りがないと使えないようなたいそ...』 (2013/07/16 11:43)

6: snjx 『あ、そうだ このバッチそのまま動かすと、%TEMP%にごみが残るので、そこだけお含み置きくださいな。』 (2013/07/16 11:56)

7: 西郷 『参考にさせて頂きました。 助かりました。 ちなみに作成されたvbsファイルを即デリートさせるのって ありだと思いますか? それ...』 (2013/07/17 22:43)

8: snjx 『コストと内容によってどちらでもお好みで。 もともとバッチファイルなんてアドホックな用途ばっかりなんで、上記例題を書こうと思った...』 (2013/07/17 25:46)

9: 西郷 『わかりやすい説明ありがとうございました。』 (2013/07/18 20:38)

10: bbs 『バッチでこんなに簡単にメッセージボックス出せるとは思いませんでした! ありがとうございます。使わせていただきます。』 (2013/12/03 15:18)

11: patchman 『batで強制的に稼働中のプロセスをKillっているbatがあるのですが、何もメッセージなしで使っているので、メッセージが出ればな...』 (2013/12/12 14:45)

12: mize 『感動です。使わせていただきます。ありがとうございます。』 (2014/10/15 15:26)

13: よっちゃん 『すげー』 (2015/01/14 25:58)

14: dada 『参考にさせて頂きます。ありがとうございました。』 (2015/03/05 16:20)

15: gakke 『やっと見付けました。。。(^o^)』 (2015/05/31 14:41)

16: けんし 『とても助かりますた』 (2015/07/25 14:53)

17: かな 『ありがとうございます。使わせて頂きます(^○^)』 (2015/08/08 9:36)

18: hacker(仮) 『ありがとうございます! ってかbat流行ってんのかな?』 (2015/10/03 17:01)

19: ゆうた 『たどり着きました...ありがたく使わせて頂きます。』 (2015/10/11 21:53)

20: ぷげら 『メッセージの改行どうしたらいいでしょう "はてな"&vbCr&"はてな"としましたがだめでした』 (2015/10/23 18:06)

21: ぷげら 『メッセージの改行どうしたらいいでしょう "はてな"&vbCr&"はてな"としましたがだめでした』 (2015/10/23 18:06)

22: ぷげら 『&じゃなくて+でだきますた』 (2015/10/24 11:48)

23: snjx 『ぷげらさん、すみませんめったに自分のとこ見に来ないので見逃していました。 自己解決なさったようで何よりでした。』 (2015/10/28 14:07)

24: ・w・ 『@if(0)==(0) ECHO OFF echo ■BATによる前処理です。■ cscript.exe //nologo //...』 (2016/05/10 10:37)

25: snjx 『おーなるほど、batファイルの中でcscriptを読んじゃうわけですね。 これは面白い。 http://computer-tec...』 (2016/05/16 11:27)

26: 通りすがり 『なるほど、ありがとうございました! …だけでは何なので、ご参考まで バッチファイルのエスケープはハットです.>20さん、見て...』 (2016/07/29 12:01)

27: Uk45.ckw 『お、おお(感激 友達に送るウイrいやいやメッセージのために使わせていただきますw』 (2016/08/03 10:42)

28: snjx 『…なぜ、この記事だけこんなに伸びてるんだろう。』 (2016/08/10 11:11)

29: 通行人 『ありがたやありがたや 使わせていただきます!』 (2016/09/16 17:18)

30: すげー 『汎用性すげー いただき!』 (2016/09/26 15:07)

31: ありがたい 『いただきまーす thx!』 (2016/10/25 18:32)

32: 純白に輝く流星るけぴす√ 『moraimasu』 (2017/06/22 23:04)

2011/12/25(日) awstats_buildstaticpages.plが勝手にプレフィックスをつけくさる件について

2011/12/25 18:21 研究課題snjx
なんかねー以前もこの時期に、季節と関係ないネタで更新したよねーほほほ。

さて、自サイトのアクセス解析にawstatsを入れてみたんだけど、若干はまった部分があったのでメモしてみる。
なんでだろ、きっと俺一人じゃないのだろうにあんまり情報がなかった。awsatatsってあんまり使われてないんかな?

まず、現象。

Apacheアクセスログ解析(AWStats)
こちらを参考に、awstatsをインストールしてアクセス解析仕込んだのね。

インストールと設定はおおむねうまくいったのね。で、単発ではちゃんと動くようになったんだけど、どうもなんだか、index.htmlの統計ページから個別の「全リスト」へのリンクが間違ってるくさい。
手順に間違いはないようなのに、404が返ってくるのだ。

ディレクトリの中を見てみると、index.htmlでは「snjx.info.yyyymm.allhosts.html」とかでaタグ書かれているのが、実際のファイルでは「awstats.snjx.info.yyyymm.allhosts.html」なんてファイル名で作られていた。

ありゃー。

で、どうしたのか

これはつまり、統計ページを作るところでaタグが間違っているのか、月別の詳細ページを作るところでファイル名が間違っているのかどっちかだと見当をつけた上で、それぞれどこで作っているのか手順の再検討を始めたわけさ。
で、awstatsreport.shの中身をもにょもにょ読んでいると「awstats_buildstaticpages.pl」ってのが実際のファイル作成を担っている模様。ははぁawstatsを直接キックしているわけじゃないのね。

直接、awstats_buildstaticpages.plをたたいて、あれこれ実験してみてよくわかったけど、こいつが詳細ページのファイル名に勝手にawstatsとかつけるくさい。そのくせ、統計ページのaタグはホスト名から始まっているだけなのだ。悪さをしているのはこいつ。

で、けっきょく、awstats_buildstaticpages.pl を修正した。
446行目くらいを以下のように。

# Launch all other awstats output
for my $output (@OutputList) {
    my $command="$smallcommand -output=$output";
    print "Build $output page: $command\n";
    $retour=`$command  2>&1`;
#    $OutputFile=($OutputDir?$OutputDir:"")."awstats.$OutputSuffix.$output.$StaticExt"; # 勝手につける文言を削除
    $OutputFile=($OutputDir?$OutputDir:"")."$OutputSuffix.$output.$StaticExt";
    open("OUTPUT",">$OutputFile") || error("Couldn't open log file \"$OutputFile\" for writing : $!");
    print OUTPUT $retour;
    close("OUTPUT");
    $cpt++;
    push @pages, $OutputFile;    # Add page to @page for PDF build
}

続きを読む