[前の記事]« スクロールしてしまった文字列を参照するには?
[次の記事]ソフトをセットアップしたらCD-Rに書き込めなくなった »

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

▲カテゴリー「DEL,ERASE,REN…ファイル削除/復活/移動/名前の変更」索引へ

任意のフォルダを削除するには・・?


290) 任意のフォルダを削除するには・・? minority 2002/05/14(火) 15:17


はじめまして
なにとぞご教授願いたいことがあります。

一週間で複数のテキストファイルができるとします(仮に10個)
そのテキストファイルを新規のフォルダにまとめます。
まとめたフォルダの名前には日付が入ります
(例えば '20020513text'という感じです)。
そうやって一ヶ月過ぎたら4~5個の日付が入ったフォルダができます。
そのフォルダの日付の一番若いモノからその後一週ごとに順番に消していきたいのです。
なんとかバッチファイルで処理したいのですが、何か良い方法はあるでしょうか?

よろしくお願いいたします。

291) Re:自己レス(追加) minority 2002/05/14(火) 15:23


>はじめまして
>なにとぞご教授願いたいことがあります。

>一週間で複数のテキストファイルができるとします(仮に10個)
>そのテキストファイルを新規のフォルダにまとめます。
>まとめたフォルダの名前には日付が入ります
>(例えば '20020513text'という感じです)。
>そうやって一ヶ月過ぎたら4~5個の日付が入ったフォルダができます。
>そのフォルダの日付の一番若いモノからその後一週ごとに順番に消していきたいのです。
>なんとかバッチファイルで処理したいのですが、何か良い方法はあるでしょうか?

>よろしくお願いいたします。

環境はwindows2000です

299) Re:任意のフォルダを削除するには・・? SYSOP 2002/05/15(水) 10:34


minorityさん こんにちは。

「毎週1回自動実行」というところまで自動化させるのはバッチファイル単独ではむずかしいと思いますが、具体的な削除処理部分=「あるディレクトリ内の、 最も文字コードが若い(日付をフォルダ名にしているのであれば最も古い)名前のフォルダだけを削除するバッチファイル」を作ってみました。
 3つのバッチファイルをつなぐ格好で、けっこう複雑になってしまいましたが、これに関しては「できなくはない」という感じですね。

YanaKen
----------------------------------------------------------------------------
:DELOLD.BAT
REM @ECHO OFF
IF EXIST SAMPLE.BAT DEL SAMPLE.BAT
IF EXIST SAMPLE.TXT DEL SAMPLE.TXT
PAUSE ファイル(ディレクトリ)一覧の取得を開始
FOR %%F IN (200*) DO ECHO REMOVE %%F >>SAMPLE.TXT
REM SAMPLE.TXTに、合致するファイルの一覧を書き出す。
REM 各行の先頭には"REMOVE "というコマンド名(バッチファイル名)を指定している。
IF NOT EXIST SAMPLE.TXT GOTO ERR
TYPE SAMPLE.TXT | SORT >SAMPLE.BAT
REM ↑出力されたSAMPLE.TXTの行を並び替えて書き戻し、「いちばん若いファイル
REM 名」が確実に1行目にくるようにする。
REM ※昔のDOSだと同じファイルに書き戻せた記憶があるのだけれど、NT系では
REM  ダメみたいなので、SAMPLE.TXT→SAMPLE.BATという別ファイルにしてみました。
ECHO 処理を続行します
PAUSE
SAMPLE.BAT
REM ↑出力したバッチファイルに処理を移すため、何も問題なければこのバッチ
REM はこの行までで実行終了。万一のため末尾にGOTO。
GOTO QUIT
:ERR
ECHO ファイル "200*"が見当たらないみたいです。
:QUIT

※生成されたバッチファイルの内容例(CALLなしでREMOVE.BATを呼び出しているため、実際には1行目だけが実行される)
:SAMPLE.BAT
REMOVE 20020513text
REMOVE 20020520text
REMOVE 20020527text

:REMOVE.BAT
REM @ECHO OFF
REM 出力したバッチファイルから呼ばれるバッチファイル
ECHO ディレクトリ %1 を削除します。問題があるようならCtrl+Pause(Break)で中止してください。
PAUSE
IF %OS%.==Windows_NT. GOTO NT
REM 環境変数"OS"に"Windows_NT系"かどうかを見分けて分岐
:WIN95/98/Me
DELTREE %1
REM 問答無用で削除していいなら DELTREE /Y %1 に変更
GOTO QUIT
:NT
RD %1 /S
REM 問答無用で削除していいなら RD %1 /S /Q に変更
:QUIT
ECHO 処理を終了しました。
PAUSE



301) ありがとうございましたw minority 2002/05/15(水) 13:18


yanakenさん 
ややこしい質問に丁寧にお答えいただいて ありがとうございました
すごいですね☆ びっくりしました!
バッチファイルってすごい可能性を秘めていることがわかりました
なんでもできそうな気がしてきましたw
また、何かあったらよろしくお願いします

ちなみに「一週間毎の自動実行」についてはスケジューラーという
ツールを使って起動させるのでその点は問題ありません。
そんなところまで考えて頂いてるとは思ってもいませんでしたので・・

本当にありがとうございました♪
 
 


カテゴリー「DEL,ERASE,REN…ファイル削除/復活/移動/名前の変更」索引へ

 

カテゴリー一覧

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


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

資料書籍

About

2002年05月14日 12:09に投稿されたエントリーのページです。

ひとつ前の投稿は「スクロールしてしまった文字列を参照するには?」です。

次の投稿は「ソフトをセットアップしたらCD-Rに書き込めなくなった」です。

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

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