2012-01-31 14 views
0

バッチファイルを使用して*.sql個のファイルを90日以上削除して、次のコマンドを書き留めます。バッチファイルを使用して90日を超えるファイルを削除する

forfiles /M *.sql /d -90 /c "cmd /c del @file 

上記のコマンドが有効かどうかわかりませんか?必要がない場合は提案してください。それはあなたの現在のディレクトリがデフォルトになりますので、あなたは、パスを指定していない

+2

もしあなたがわからないのであれば、それを試してみてください。 – Mechaflash

+0

あなたのテストをsandboxフォルダで実行することを忘れないでください... –

+4

Mechaflashを拡張するには、 'del'を' echo'に置き換えて、返されたファイルがあなたのものと一致するかどうか確認してください期待する。それからあなたはそれが働くことを知っている –

答えて

0

forfiles/M * .SQL/D -90/C「CMD​​/Cデル

SYNTAX (FOR WIN XP FORFILES RESOURCE KIT) 
FORFILES [-p Path] [-m Mask] [-s] [-c Command] [-d [+ | -] {dd/MM/yyyy | dd}] 

@file

forfiles -p "C:\ Path \ To \ sqlfiles" - 安全のために、パスを指定します。 m * .sql -d-90 -c "cmd/c del @FILE"

あなたたとえば、パスを指定しない:

forfiles -m * .SQL -d-90/c "をCMD/C・デル@FILE"

EDIT:私のコマンドを編集スイッチ記号に-の代わりに/を使用すると、動作しません。他に述べたのでリンクも削除されました。注意:スイッチと入力の間にはスペースが挿入されないため、故障する可能性があります。また、@パラメータはすべて大文字で入力する必要があります。また、ss64.comのオンラインドキュメントは、使用のために間違っています@PATH

+0

私はZohaibが意図的にデフォルトのディレクトリにデフォルト設定していると思っています。/Pオプションを指定してパスを指定すると、コマンドで '@ FILE'の代わりに' @ PATH'を使用する方がよいでしょう。 – dbenham

+0

@dbenham私はpathでそれをテストし、それは私にファイルのパスだけを与え、ファイルを含めません。 'p'スイッチでディレクトリを指定しているときに@FILEを使用すると、それは動作します。 – Mechaflash

+0

何を言いますか? Vistaでは、 '@ PATH'はファイル名を含む完全なパスを与えます。 '@ FILE'は、/ Pオプションが使われていても、ファイル名と拡張子のみを与えます。したがって、/ Pオプションと '@ FILE'を持つあなたのバージョンは、指定されたパスが現在のディレクトリと一致しない限りVistaでは動作しません。他のバージョンのWindowsでFORFILESがどのように動作するかはわかりません。 – dbenham

関連する問題