現在、過去の不要なファイルの削除を検討しています。
例えば、過去15日より前のファイルでかつ、ファイル名がhoge.pdf
ではないものを削除したいと考えています。
Windowsのbatファイルで対象の処理を行おうかと考えたのですが、FORFILESの後のコマンドでif
の判定が上手くいかずに悩んでいます。
前提
C:\temp配下にhoge.pdfとfuga.PNGファイルが存在するとします。
共に作成日は今日から15日以上前で、想定としては、fuga.PNGのみが削除されてほしいと考えています。
実行結果
何も指定しない場合
C:\TEMP\test>FORFILES /P "C:\TEMP\test" /S /M *.* /D -15 /C "cmd /c echo del @file" del "fuga.PNG" del "hoge.pdf"
if @file=="hoge.pdf"
を指定した場合、何も抽出されず…
C:\TEMP\test>FORFILES /P "C:\TEMP\test" /S /M *.* /D -15 /C "cmd /c if @file=="hoge.pdf" echo del @file" C:\TEMP\test>pause 続行するには何かキーを押してください . . .
if not @file=="hoge.pdf"
と否定の条件を指定した場合、全て抽出されるのでif自体は有効と思われます
C:\TEMP\test>FORFILES /P "C:\TEMP\test" /S /M *.* /D -15 /C "cmd /c if not @file=="hoge.pdf" echo del @file" del "fuga.PNG" del "hoge.pdf" C:\TEMP\test>pause 続行するには何かキーを押してください . . .
要するに@file=="hoge.pdf"
の判定が上手くいっていないと思うのですが、
回避する手立てや上記の目的を簡単に達成できる手段(FORFILESに限らず)をご存知の方がいたらご教示頂けないでしょうか。
VBなどで組んでも良いのですが、簡単に済めばそれに越したことはない、という思いです
宜しくお願い致します。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/13 08:44
2017/11/13 08:49