[前の記事]« [Win98] >を文字としてリダイレクトしたい
[次の記事]SET /Aで0詰め2桁の日付が8進数として扱われてしまう問題への対処 »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「DATE,TIME…日付、時刻の取得/利用」索引へ
▲カテゴリー「DEL,ERASE,REN…ファイル削除/復活/移動/名前の変更」索引へ

[NT系]日付の古いファイルを削除するバッチ処理

130.
日付の古いファイル削除するバッチについて
2004年12月07日(火) 10時53分
半人前
●DOS/Windowsのバージョン↓
windws2000server

Win2000マシンにおいてファイルの受け取りをしているのですが、
そのファイルに[YYYYMMDD]で日付を頭に付加しています。
このファイルを直近1ヶ月のものだけにするバッチを作ろうとしているのですが、周りに詳しい人がいなく煮詰まっています。
プログラム初心者でどこから手を付けていいものかもわからず
質問したしだいです。

過去ログにWin2000で世代管理をされている方もいたので実現できると思うのですが、どなたかアドバイスを頂けないでしょうか。
133.
Re:日付の古いファイル削除するバッチについて
2004年12月07日(火) 17時42分
otn
>●DOS/Windowsのバージョン↓
>windws2000server

>Win2000マシンにおいてファイルの受け取りをしているのですが、
>そのファイルに[YYYYMMDD]で日付を頭に付加しています。
>このファイルを直近1ヶ月のものだけにするバッチを作ろうとしているのですが、周りに詳しい人がいなく煮詰まっています。
>プログラム初心者でどこから手を付けていいものかもわからず
>質問したしだいです。

>過去ログにWin2000で世代管理をされている方もいたので実現できると思うのですが、どなたかアドバイスを頂けないでしょうか。

日付けを計算する方法もありますが、簡単で分かりやすいのが世代数での管理です。そのフォルダにその他のファイルが無いと仮定すると、「dir /b /o-n」 でファイル名のYYYYMMDDの新しい順にファイル名が表示出来ます。
もし他のファイルもあるなら、「dir /b /o-n ????????logfile.txt」 のように対象ファイルだけがマッチするように?や*でパターンを指定。

で、先頭の新しい31世代だけ残して消す。
for /f "skip=31" %%F in ('dir /b /o-n') do del %%F
(skip=31で先頭から31行読み飛ばします)
134.
Re2:日付の古いファイル削除するバッチについて
2004年12月08日(水) 10時28分
半人前

>日付けを計算する方法もありますが、簡単で分かりやすいのが世代数での管理です。そのフォルダにその他のファイルが無いと仮定すると、「dir /b /o-n」 でファイル名のYYYYMMDDの新しい順にファイル名が表示出来ます。
>もし他のファイルもあるなら、「dir /b /o-n ????????logfile.txt」 のように対象ファイルだけがマッチするように?や*でパターンを指定。

>で、先頭の新しい31世代だけ残して消す。
>for /f "skip=31" %%F in ('dir /b /o-n') do del %%F
>(skip=31で先頭から31行読み飛ばします)

ご連絡が遅くなりましたがレスありがとうございます。

早速教えて頂いたコマンド例をもとにバッチを作ってみました。
説明がもれていたのですが、対象フォルダ内に複数の対象ファイルがあったので、*を使ってそれぞれのファイルを消すようして実行したところ、思いどうりの結果になりました。

厳密な事を言えば日付を計算して一月分を残すのが良いとは思いますが、こちらの方がシンプルで私は好きです。
このロジックなら応用が利くのでいろんな所に使って行こうと思います。

今回は本当にありがとうございました。
 
 


カテゴリー「DATE,TIME…日付、時刻の取得/利用」索引へ
カテゴリー「DEL,ERASE,REN…ファイル削除/復活/移動/名前の変更」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2004年12月07日 08:50に投稿されたエントリーのページです。

ひとつ前の投稿は「[Win98] >を文字としてリダイレクトしたい」です。

次の投稿は「SET /Aで0詰め2桁の日付が8進数として扱われてしまう問題への対処」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート