- PR -

eventquery.vbs を使って一ヶ月ごとのログファイルを自動的に作成したい

投稿者投稿内容
ぽてCCP
常連さん
会議室デビュー日: 2006/04/06
投稿数: 30
投稿日時: 2006-06-29 10:13
サンプル・バッチの1行目
@echo off
を削除するなり、コメントアウトするなりして実行すると
何をしてるか分かりやすいと思いますよ。

あと、ddにセットするのは0でもいいんじゃないか?というのは
私も思ってました。
きっと、著者さんの趣味じゃないでしょうか。
conp
会議室デビュー日: 2004/03/25
投稿数: 17
投稿日時: 2006-06-29 10:54
ぽてCCP 様

ご返信ありがとうございます。
こんぴです。
※次ページにページが進んでいるのに気づかなかったため、
※ご返信が遅くなりました。

引用:

サンプル・バッチの1行目
@echo off
を削除するなり、コメントアウトするなりして実行すると
何をしてるか分かりやすいと思いますよ。


デバッグするのに echo off を解除するのを忘れていました。
ご助言ありがとうございます。

引用:

あと、ddにセットするのは0でもいいんじゃないか?というのは
私も思ってました。
きっと、著者さんの趣味じゃないでしょうか。


やはりそうですか。
なにか特別な意味があるかと考えていました。

まだ、実現したいことは試している最中ですが、
やはり %% の意味がわかりません。
set /a としていることと % の記号から
除算 しているのでは?と予想されるのですが、
%% とした場合、なにを計算しているのでしょうか。

ご存知であれば教えて頂けると幸いです。

また、先に質問させて頂いた中で、
私が試した結果を以下に転記します。

-- 以下 抜粋 -----------------------------------

rem 1日前の日付を計算する

if %dd%==09 set dd=9& rem avoid 09
if %dd%==08 set dd=8& rem avoid 08

-- 以上 ----------------------------------------

がありましたが、
「dd=9&」を「dd=9」として実行したところ、
以下のようになりました。
※一部プログラム内容を追記し、
※確認のため echo している部分があります。

--- 以下 ----------------------------------------

>test03.bat
dd: 09
mm: 09
REM の使い方が誤っています。

>test03.bat
dd: 09
mm: 09
"Datetime eq 08/01/06,12:00:00AM-08/08/06,11:59:59PM"

-- 以上 ----------------------------------------

ue 様から教えて頂いたとおり、
どうも、「&」がないと、rem を if文の記述として
みるようだということがわかりました。
ありがとうございました。
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-06-29 13:54
ueです。こんにちは。
引用:

ぽてCCPさんの書き込み (2006-06-28 17:24) より:
多分、まんまコメントだと思います。
私も初めてみるコマンドだ!と思って調べちゃいました。


引用:

こんぴさんの書き込み (2006-06-29 10:54) より:
どうも、「&」がないと、rem を if文の記述として
みるようだということがわかりました。


コマンドとコメントを一行に納めるためのアンパサンドだったんですね。
コメント用に専用の行を確保する発想しかなかったので勉強になりました。

引用:

こんぴさんの書き込み (2006-06-29 10:54) より:
まだ、実現したいことは試している最中ですが、
やはり %% の意味がわかりません。
set /a としていることと % の記号から
除算 しているのでは?と予想されるのですが、
%% とした場合、なにを計算しているのでしょうか。


%% は、関数電卓で云うところの Mod です。

コード:

set /a ymod=%yy% %% 4


この場合、%yy% を 4 で割った「余り」が ymod に代入されます。
% が2つ重なっているのは、算術演算子として認識させるためです。
重ねずに使用すると、ヘルプに記載の通り、演算子のつもりで書いた % が 0 に変換されてしまいます。

[ メッセージ編集済み 編集者: ue 編集日時 2006-06-29 13:55 ]
conp
会議室デビュー日: 2004/03/25
投稿数: 17
投稿日時: 2006-06-29 18:33
ue 様、ぽてCCP 様

お世話になっています。
こんぴです。

引用:

%% は、関数電卓で云うところの Mod です。

コード:
set /a ymod=%yy% %% 4


この場合、%yy% を 4 で割った「余り」が ymod に代入されます。
% が2つ重なっているのは、算術演算子として認識させるためです。
重ねずに使用すると、ヘルプに記載の通り、演算子のつもりで書いた % が 0 に変換されてしまいます。


なるほど。良く分かりました。
ここでうるう年の計算をしているのはわかっていたのですが、
set /? の内容を読んでも理解できないところがあり、
ue 様のフォローで意味がわかりました。
ありがとうございます。

さて、肝心のバッチですが、
現在も作成途中ではあります。
しかし、ue 様、ぽてCCP様のご助力のおかげで、
「それっぽいもの」を
バッチで作成することができました。
本当にありがとうございました。

Unix系のシェルスクリプトと
Windows のバッチ・VBScript では、
扱い方にかなり差異があり、
かなり苦労している状況です。

また機会がありましたら、
よろしくお願い致します。

スキルアップ/キャリアアップ(JOB@IT)