[前の記事]« ファイル名が条件にマッチした場合の分岐処理
[次の記事]set /aの基本的な使い方 »

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

▲カテゴリー「SET, PATH, %環境変数%」索引へ

6ヶ月以上更新がないファイルを削除したい

1449.
更新のないファイルの削除
2006年10月16日(月) 10時21分
yosi◆20vnNAw=
●DOS/Windowsのバージョン↓
Windows2003 サーバ
(以下ご自由に質問文をお書きください)

C:\test\配下のディレクトリ(サブディレクトリ含)から
6ヶ月以上更新がないファイルをタスクを利用して
削除したいというものです。

過去の”1年以上更新の無いファイルを削除したい” を参考にしましたがfor文の使い方が
理解ができていなく、教えていただきたく思います。
宜しくお願いいたします。
1450.
Re:更新のないファイルの削除
2006年10月16日(月) 14時02分
otn
>C:\test\配下のディレクトリ(サブディレクトリ含)から
>6ヶ月以上更新がないファイルをタスクを利用して
>削除したいというものです。
>
>過去の”1年以上更新の無いファイルを削除したい” を参考にしましたがfor文の使い方が
>理解ができていなく、教えていただきたく思います。

どのログのことか分かりませんが、そこに「1年以上更新の無いファイルの削除方法」が書いてあるなら、1年前の日付を求める部分を半年前の日付を求めるように変えるだけです。
特にfor文を理解する能力は必要ないと思いますが。

1452.
Re:更新のないファイルの削除
2006年10月16日(月) 15時51分
scriptwriter
サンプル。ここではECHOしてるだけ。

@ECHO OFF
SETLOCAL
SET d=%DATE%
SET /A x=%d:~0,4%*12*31+(1%d:~5,2%-100)*31+(1%d:~8,2%-100)
SET /A x=x-6*31
FOR %%0 IN ( フォルダ\* ) DO CALL :SUB "%%~0"
GOTO :EOF
:SUB
SET d=%~t1
SET /A y=%d:~0,4%*12*31+(1%d:~5,2%-100)*31+(1%d:~8,2%-100)
IF %y% LSS %x% ECHO %1
GOTO :EOF

1457.
Re:更新のないファイルの削除
2006年10月17日(火) 13時02分
scriptwriter
この手の処理は、forfiles.exeを使うとよいようです。
forfiles.exeはリソースキットにしかないようですが、
ここからもダウンロードできるようです。
ftp://ftp.microsoft.com/ResKit/y2kfix/x86/

1463.
Re:更新のないファイルの削除
2006年10月17日(火) 23時58分
scriptwriter
>FOR %%0 IN ( フォルダ\* ) DO CALL :SUB "%%~0"

ここで、複文でなく、サブバッチにしているのは、

>SET /A y=%d:~0,4%*12*31+(1%d:~5,2%-100)*31+(1%d:~8,2%-100)

の)が複文の)と混同されてエラーになるからです。

しかし、複文でも、

SET /A "y=%d:~0,4%*12*31+(1%d:~5,2%-100)*31+(1%d:~8,2%-100)"

としてやればよいようです。

1471.
Re:更新のないファイルの削除
2006年10月20日(金) 06時37分
yosi◆20vnNAw=
回答ありがとうございます。
以下のような形で日付取得しようと思ってるのですが
set Y=%DATE:~0,4%
set M=%DATE:~5,2%
set D=%DATE:~8,2%
set /a M-=6
ここでM-=6したときに、2月の場合-4となってしまいますが、うまい回避方法はないでしょうか?
よろしくお願いしますm_m

1472.
Re:更新のないファイルの削除
2006年10月20日(金) 09時03分
じゃく
>回答ありがとうございます。
>以下のような形で日付取得しようと思ってるのですが
>set Y=%DATE:~0,4%
>set M=%DATE:~5,2%
>set D=%DATE:~8,2%
>set /a M-=6
>ここでM-=6したときに、2月の場合-4となってしまいますが、うまい回避方法はないでしょうか?
>よろしくお願いしますm_m

Mが0以下だったら、Mに12を足して、Yから1を引く。

すでにscriptwriterさんから実働可能な例が示されてますが、自力で考えるということですね。




 
 

1449.更新のないファイルの削除 yosi◆20vnNAw= 06/10/16(月) 10:21
1450.Re:更新のないファイルの削除 otn 06/10/16(月) 14:02
1452.Re:更新のないファイルの削除 scriptwriter 06/10/16(月) 15:51
1463.Re:更新のないファイルの削除 scriptwriter 06/10/17(火) 23:58
1457.Re:更新のないファイルの削除 scriptwriter 06/10/17(火) 13:02
1471.Re:更新のないファイルの削除 yosi◆20vnNAw= 06/10/20(金) 06:37
1472.Re:更新のないファイルの削除 じゃく 06/10/20(金) 09:03
 
 


カテゴリー「SET, PATH, %環境変数%」索引へ

 

カテゴリー一覧

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


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

資料書籍

About

2006年10月16日 11:46に投稿されたエントリーのページです。

ひとつ前の投稿は「ファイル名が条件にマッチした場合の分岐処理」です。

次の投稿は「set /aの基本的な使い方」です。

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

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