![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
よろしくお願いします。
ここのところ質問ばかり申し訳ありません。
自分の頭の悪さに泣いております・・・。
以下のバッチファイル(Windows2000)を
作成できればと検討中です。
もし宜しければご教授願えますでしょうか。
さっぱり分かりません。
Q1.
あるアプリケーションが出力するログがあります。
このログを2世代管理したいと考えています。
1日目に出力されたログを abc.log とすると、
2日目のアプリケーションの起動時にこの「abc.log」
を「abc.日付」にコピーし、「abc.log」の内容を
クリアし、2日目のアプリケーションのログを
書き出せるようにする。
3日目のアプリケーションの起動時に「abc.log」を
「abc.日付」にコピーし、「abc.log」の内容の
クリアと2日目に作成した「abc.日付」(内容は1日目
のログ)を削除する。
Q2.
この曜日ならこの処理をする。
というように、曜日で処理を分岐させる。
どうぞ宜しくお願い致します。
No.3ベストアンサー
- 回答日時:
個人的には、WSHを使った方が書きやすいと思いますが、バッチの小ネタをいくつか。
1)日付文字列の作成:
SET TODAY=%DATE:~-10,-6%%DATE:~-5,-3%%DATE:~-2%
ECHO %TODAY%
%DATE%の出力はロケールに依存するので、調整が必要かも。
2)日付の最も旧いファイル名の取得:
FOR /F "usebackq" %%f IN (`dir /b/o:-d a.log.*`) DO SET OLDLOG=%%f
ECHO %OLDLOG%
3)ファイルの内容を空にする:
COPY /y NUL a.log
4) 曜日の取得
……はあまり良い手が思いつかない。%DATE%に含まれていれば簡単ですが。
cygwinのlogrotateとか使った方が手っ取り早いかも。
osamuy さん、アドバイスありがとうございます。
まさに、求めていた回答です。
ありがとうございました。
曜日の取得は、VBSにて解決しました。
cygwinを少し検索してみましたが、これは
購入しないと得られないものなのでしょうか?
No.4
- 回答日時:
>曜日の取得は、VBSにて解決しました
日本語Windows2000であれば、%DATE:~0,1% で漢字で曜日が得られますので、
if %DATE:~0,1%==日 (日曜日の処理。。。)
のようにすればいいかと思います。
(WinXP以降だと設定変更しないと曜日は%DATE%に付かないのですが)
一般的には、当日日付けだけでいいならバッチだけで書いて、前日日付けが必要など日時計算がからんだら、計算の所だけVBSを使うのが良いかと思います。コピー・リネーム・削除はバッチが楽、日時計算はVBSが楽だからです。
>cygwinを少し検索してみましたが、これは購入しないと得られないものなのでしょうか?
フリーソフトですが、この程度の処理であれば必要ないです。unix/linux環境とWindows環境が混在していて、全部bashスクリプトで統一したいと言うことなら入れれば良いと思います。
notnot さん、ご回答ありがとうございます。
確かに、今日Windows2000でdate/tを実行したら
曜日がついていました。
考えているときには、手元にWinXPしかなかったので、
そこで打って出てきたもので考えていました。
>一般的には、当日日付けだけでいいならバッチだけで書いて、前日日付けが必要など日時計算がからんだら、計算の所だけVBSを使うのが良いかと思います。コピー・リネーム・削除はバッチが楽、日時計算はVBSが楽だからです。
そういうことになっているんですね。
ありがとうございます。
No.2
- 回答日時:
Q2はちょっと妙案が思いあたりませんが、Q1に関しては仕様を変更すれば簡単にできます。
(例)
当日のログファイル名を「abctoday.log」
昨日の分を「abcyestd.log」とします。
アプリケーションを起動する前にバッチファイルで
当日のファイルを昨日の分に上書きしてやるだけです。
さらに3日分、4日分と増やす事も可能です(実際職場でそのような管理をしたことがあります)。
shironekoxxx さん、アドバイスありがとうございます。
確かに、おっしゃるとおりです。
「仕様変更」という考えが浮かびませんでした。
教えていただいた方法で単純に解決しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/10 08:51
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/09 10:07
- UNIX・Linux Ubuntu でinvalid filenameとなるファイルをコピーする方法 3 2023/06/08 22:26
- JavaScript JavaScriptの条件分岐について(yes noチャート)で悩んでおります。 Q1は2択(ab) 5 2023/04/15 11:44
- Excel(エクセル) Excelのセル内の特定の文字列を別のセルへ抽出したいです 2 2022/07/06 16:10
- 中学校 国語の授業で、 1分間スピーチをするのですが、 内容が15秒程度しかおもいつきません。 どんな風に書 6 2023/07/09 19:25
- Visual Basic(VBA) ExcelVBA No.を自動連番で設定をしながらデータ入力をしたい 2 2022/08/03 18:19
- 政治 ABC予想で自衛隊を合憲にする事ができますよね? 3 2022/04/23 05:46
- 数学 これが人類最初のABC予想の応用ですか? 3 2022/04/27 05:41
- その他(開発・運用・管理) 【至急】.htaccessによるディレクトリ単位でのリダイレクト 2 2023/08/10 13:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba アプリケーションが立ち上...
-
vb6で異なるのプロジェクト間で...
-
イラストレーターCS4のシリアル...
-
VBSでのSendKeysでの画面の最小化
-
外部アプリケーションの起動に...
-
初回接続の遅い原因について
-
アプリケーションをVBS(WSH?)で...
-
pccNTmon.exeとntrtscan.exeの違い
-
VBSで2バイト文字の送り方の質...
-
フレームワーク「4.8.1」で、[S...
-
現在起動中のアプリケーション...
-
制限付きユーザーでのアプリケ...
-
Macターミナルで実行中のプログ...
-
逆コンパイルと逆アセンブルの...
-
DoEvents関数って何?
-
緯度、経度の 10進法と 60進法...
-
PICのPIN変化割り込みに...
-
プロセス間通信について
-
Excel(VBA)シート上のコマンド...
-
メッセージボックスのボタン名変更
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba アプリケーションが立ち上...
-
フレームワーク「4.8.1」で、[S...
-
コンソールアプリケーションの...
-
VBSでのSendKeysでの画面の最小化
-
実行時のコマンドプロンプトを...
-
VB.NETでMessageBoxを表示した...
-
イラストレーターCS4のシリアル...
-
Windowsプログラムのビジー状態...
-
Accessフォームからの外部アプ...
-
pccNTmon.exeとntrtscan.exeの違い
-
初回接続の遅い原因について
-
Java Web Start アプリケーショ...
-
C#でGUI・CUIの判断する仕方を...
-
Console Applicationをタスクト...
-
現在起動中のアプリケーション...
-
vb6で異なるのプロジェクト間で...
-
VB.NETでフォームアクティブの...
-
自分自身を更新するプログラム
-
MFCアプリケーションでの終了コ...
-
対象のアプリケーションが終了...
おすすめ情報