2016-07-27 105 views
-1

我有一個報告將網絡(NTFS)文件夾中的文件存入另一個特定網絡(NTFS)文件夾。某些文件在文件名中包含一串隨機數字(例如文件名:xxsample_export 2131.xml)。我需要找到並刪除文件夾中包含文件名中的數字的所有文件。我試過使用Findstr,但目前爲止沒有運氣。 :(批處理 - 在dir中找到文件,其中的文件名包含數字

編輯:我想這一點,我是令人難以置信的新的FINDSTR感謝您的幫助

for /F %%F in (dir /A -D "%Path%\*.xml" | findstr /R "[0-9]*.xml" do del %%F"  
+0

請告訴我們你已經嘗試過! – aschipfl

+0

對不起,我試過了: –

回答

2

拉梅但很快(我想del yourdir\*[0-9].xml會工作,但真是沒有),只有作品。如果你需要刪除持平,否則看aschipfl的解決方案使用dir /Bfindstr

在.bat文件(yourdir是要從中刪除文件的目錄):

for %%n in (1 2 3 4 5 6 7 8 9 0) do for %%a in (yourdir\*%%n.xml) do del "%%a" 2>NUL 
+0

好主意,+1!但是,這可能會導致錯誤消息,因爲您正在修改目錄內容,同時通過'for'遍歷它,因爲'for'不會事先枚舉所有匹配的項目;參考也[這篇文章](http://stackoverflow.com/q/31975093)... – aschipfl

+0

當我說這是跛腳,我試圖保持我的承諾:)編輯來掩蓋錯誤。不是最優的,我承認 –

+0

不幸的是,這是刪除文件夾中的每個文件,而不僅僅是具有數字的文件。 –

2

下面是使用findstr一個解決方案:

set "LOCATION=\path\to\files" 
for /F "eol=| delims=" %%F in (' 
    dir /B /A:-D "%LOCATION%\*.xml"^
     ^| findstr /I /R "[0-9][0-9]*\.xml$" 
') do (
    del "%LOCATION%\%%F" 
) 

這將刪除包含數字作爲其文件名的最後一部分,所有.xml文件。

+0

這個解決方案是你需要遞歸刪除時使用的解決方案 –

+0

啊,這是_not遞歸_,這隻影響一個目錄級別;或者我誤解了你? – aschipfl

+0

我以爲它是遞歸的!抱歉。但我們不知道這個問題的真正需要。 –

相關問題