サーバ上のログファイルを日毎に次のようなフォルダにまとめて管理しています。
(ログフォルダは翌朝のDOSバッチジョブでBACKUP_(処理日付)のフォルダを作成してその下に*.*指定で全てのファイル(除 フォルダ)を移動して作成します。)
例.
BACKUP_20041130
BACKUP_20041129
BACKUP_20041128
・
・
・
BACKUP_20040311
BACKUP_20040310
このフォルダを処理日付から数えて90日より古いものを削除するDOSコマンドバッチファイル(日次実行)を作成したいです。
プログラムを作成すればこれを実現するのは可能なんですが、なんとかDOSコマンドだけでこの仕組を作りこめないものでしょうか?
ご存知の方がいらっしゃったら教えて下さい。
No.4ベストアンサー
- 回答日時:
毎日必ずフォルダが作られているなら最新の90個を除いたものを消せばいいので、
for /f "skip=90" %%A in ('dir /b /ad /o-n BACKUP_????????') do rd /s /q %%A
ちゃんと日付けの計算をするなら、バッチコマンドだけでも不可能ではないですが長くなるので、日付け計算だけVBScriptを使うのが良いと思います。
echo WScript.Echo DateAdd("d",-90,Date) > tmp.vbs
for /f "delims=/ tokens=1-3" %%A in ('cscript //nologo tmp.vbs') do set OLD=BACKUP_%%A%%B%%C
del tmp.vbs
for /d %%D in (BACKUP_????????) do if %%D LSS %OLD% rd /s /q %%D
どうもありがとうございます!
「最新の90個を除いたものを削除」方式を利用させていただきます。
日付計算が不要で、簡単に実現できる方法を教えていただいて助かりました。
No.5
- 回答日時:
kommyさんのサーバのOSの種類がわかりませんが、
2000以降なら参考URLに本日のn日前を求めるバッチが
掲載されています。参考にしてみては。
参考URL:http://homepage1.nifty.com/jak/batch/jdate.html
回答どうもありがとうございます。
今回はnotnotさんにご紹介いただいた、日付計算を行わずに最新のn個以外を削除する方法で対応することにしました。
今後、日付の判断が必要となる機会も出てくると思いますので、pita-goraさんにご紹介いただいたURLを参考にさせてい頂きます。
ありがとうございました!
No.3
- 回答日時:
kommyさんはファイル名に埋め込まれた日付を基準に判断したいと考えておられるので少し的外れかも知れませんが
下記URLに似たような質問があり、そのスレッドの500番の発言に
「フォルダの作成日」をもとに削除できる方法というのが
紹介されていますよ。
参考URL:http://forum.nifty.com/fpcu/top/doslog02/0496.htm
回答どうもありがとうございます。
今回はnotnotさんにご紹介いただいた、日付計算を行わずに最新のn個以外を削除する方法で対応することにしました。
今後、日付の判断が必要となる機会も出てくると思いますので、ffchopinさんにご紹介いただいたURLを参考にさせて頂きます。拝見しましたが、説明がわかりやすくていいですね。
ありがとうございました!
No.2
- 回答日時:
DOSのコマンドだけでファイル名や作成・更新日時を取得・判別させるのは困難でしょう。
別のexeなどを利用する必要があるかもしれません。wshなどでしたら20行程度で済むものですからそちらで検討された方がお勧めかと。
参考
http://www.hatena.ne.jp/1086680518
回答どうもありがとうございます。
今回はnotnotさんにご紹介いただいた、日付計算を行わずに最新のn個以外を削除する方法で対応することにしました。
EXEを作成するとなると、仕様書やら設計書の変更、追加でテストも必要となりますのでそれ以外の方法を探していました。
すぐに反応いただいて心強かったです
ありがとうございました!
No.1
- 回答日時:
DOSコマンドだけでは、日付の処理ができないと思うので
VBScriptを使うというのは、だめなのでしょうか
回答どうもありがとうございます。
今回はnotnotさんにご紹介いただいた、日付計算を行わずに最新のn個以外を削除する方法で対応することにしました。
当方、VBScriptを利用した経験がありませんでしたので、それ以外の方法を探していました。今後の為にはスクリプトがわかったほうがよさそうなので、勉強してみたいです。
すぐに反応いただいて心強かったです
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
- Windows 10 外部ドライブにマウントできない問題について 9 2022/03/22 18:08
- その他(プログラミング・Web制作) 複数のテキストファイルの結合方法 2 2022/05/14 23:58
- Excel(エクセル) 2つのマクロを連続して動かしたい 3 2022/09/20 23:46
- その他(プログラミング・Web制作) フォルダを一括で作成する方法 0 2022/07/27 19:19
- Excel(エクセル) ファイル一覧表を使ったファイルの移動 5 2022/08/10 15:37
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行すると メッセージボックスが表示されて okをク 4 2023/07/05 19:32
- その他(OS) DOSコマンド『dir』の『/o』オプション 3 2023/03/10 09:29
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- その他(プログラミング・Web制作) DOSコマンドに詳しい方、お知恵をお貸しください 5 2022/11/04 20:55
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
バッチコマンドでファイル名の一部を参照して削除
その他(プログラミング・Web制作)
-
30日前を残して過去の日付フォルダを削除したい
その他(プログラミング・Web制作)
-
XCOPYでネットワーク越しにコピーすると、「無効なドライブ指定です」と表示される
その他(プログラミング・Web制作)
-
-
4
日付でファイルを削除するbatファイルの作り方
Windows 95・98
-
5
コマンドプロンプトでファイル削除時の戻り値を取得したい
その他(プログラミング・Web制作)
-
6
bat処理の実行結果ログ出力方法について
Windows 10
-
7
バッチファイルでDirで取得したファイル名を変数に入れる方法
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
make test って何をするための...
-
バッチ終了時にDOS窓を閉じるコ...
-
コマンドプロンプトをクリック...
-
BATファイル作成時の記述に...
-
バッチファイル 文字列にスペ...
-
ftpコマンドを実行すると「425 ...
-
バッチコマンドのIF文(条件...
-
C言語で、string.h conio.hを使...
-
バッチファイルを使ってテキス...
-
VC++で音量の調整、ミュートは。
-
バッチファイルについて教えて...
-
ショートカットをデスクトップ...
-
メールにバイナリーファイルを...
-
AccessVBAから差し込みWORD起動...
-
FTPでUNIX上のシェルを起動する...
-
DOSコマンドで指定日数よりも過...
-
FTPサーバ(ACOS)にあるファイル...
-
VBSでタイマー
-
シェル(sh)で実行コマンドを標...
-
コマンドプロンプトとCygwinの違い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ終了時にDOS窓を閉じるコ...
-
バッチファイル 文字列にスペ...
-
ショートカットをデスクトップ...
-
make test って何をするための...
-
コマンドプロンプトをクリック...
-
バッチコマンドのIF文(条件...
-
シェルの「:コマンドが見つか...
-
findstrでヒットした1行前の文...
-
ftpコマンドを実行すると「425 ...
-
Pythonで単純にファイルを結合...
-
コマンドプロンプトで、特定の...
-
コマンドプロンプトでファイル...
-
コンピュータ名をファイル名に...
-
バッチファイルを使ってテキス...
-
SSH接続でwindowsサーバのコマ...
-
バッチファイルで実行コマンド...
-
フォルダ、ファイル操作に最適...
-
バッチファイルでdiskpart.exe...
-
2つ目の「pause」は無効?
-
AccessVBAで実行時間を指定する...
おすすめ情報