2017-03-22 14 views
0

複数のフォルダに同じ名前のファイルが複数あり、タイムスタンプがあります。例:ファイル名ごとに最後の10個を除くすべてを削除するバッチファイル

foo_2017.01.16.png 
foo_2017.01.15.png 
foo_2017.01.14.png 
bar_2017.01.16.png 
bar_2017.01.15.png 
bar_2017.01.14.png 
file_2017.01.16.png 
file_2017.01.15.png 
file_2017.01.14.png 

私は何をする必要てること_timestamp前に名前だけを解析し、各ファイル名の最後の10を維持するバッチファイルを作成することです。私はバッチであまりよく精通していないし、実際にここでいくつかの助けを使うことができます。すべてのファイルの変更日は同じなので、最後の10日間だけ保存するとは言えません。それ以外の場合は処理できます。

EDIT:

私は次のようになります28日より前の特定のフォルダ内のファイルを削除するバッチファイルを持って、私はそれぞれの反復処理するためにそれを修正する方法がわかりません特にファイル名や更新日時で行かないために:

/c echo @FILE 
forfiles -p "C:\workspace\SeleniumTestResults" -s -m *.* /D -28 /C "cmd /c del @path" 

ここでも、このバッチは間違いなく私のエリア

+2

ヘルプはあなたが何かをやったことを意味するので、質問を適宜編集してバッチファイルを投稿し、問題の原因となっているコードの部分について具体的なヘルプを求めてください。 – Compo

+0

変更した日付に基づいてすべてのファイルを削除するために使用しているバッチファイルのコピーを添付しました。私の質問の詳細をどのように行うか分かりません –

+0

すでに投稿されている回答があるため、不完全または間違って表示されることがあります!代わりに別の質問を投稿してください!さらに、質問への解決策を決して含めないでください。代わりにあなた自身の答えを提供してください!ありがとうございました! – aschipfl

答えて

2
@echo off 
setlocal 
REM create some files for testing: 
break>foo_2017.01.16.png 
break>foo_2017.01.15.png 
break>foo_2017.01.14.png 
break>bar_2017.01.16.png 
break>bar_2017.01.15.png 
break>bar_2017.01.14.png 
break>file_2017.01.16.png 
break>file_2017.01.15.png 
break>file_2017.01.14.png 
dir *.png 

set keep=2 

for /f "delims=_" %%a in ('dir /b *.png') do (
    for /f "skip=%keep% delims=" %%b in ('dir /b /o-n "%%~a*.png"') do del "%%b" 
) 
dir *.png 
ではありません
+0

答えの "for"ループを "Screenshots"と一致する各サブディレクトリで実行することは可能ですか?これは素晴らしく、すべてのサブフォルダをスキャンし、すべての "Screenshot"ディレクトリに用意されているforループを実行する方法を見つけ出すことができたと思っていましたが、これを理解している幸運はありません。私は、サンプルのフォルダ構造で質問を編集しました。それ以上の助けがあれば非常に感謝しています。 ---私は私の質問に追加しました。また、私はこれについて新しい質問を作成する必要がありますか? –

+0

私はそれを理解しました。 –

+0

いいえ@DustinN。の質問に答えを入れます。あなたの質問に答えを入れないでください!代わりにあなた自身の答えを投稿してください! – aschipfl

関連する問題