2013-04-02 90 views
3

我有一個將日誌轉儲到文件夾的應用程序。它將文件寫入最近的文件而沒有擴展名,每個舊版本都在末尾附加了一個.1,.2,.3等等。刪除除命令行中沒有擴展名的文件以外的所有文件

例子:

Filename 
Filename.1 
Filename.2 
Filename.3 

我想編寫一個擦除 「filename.?」 一個基本的腳本,但每當我喜歡寫東西

del /s "Filename.?" 

del /s "filename.*" 

它刪除所有與該文件名。

任何幫助將不勝感激。

回答

2

假設Windows中,把這個文件命名爲類似「exclude_delete.bat」:

@echo off & setlocal 

if "%1"=="" goto :syntax 

set wildcard=%1 

for %%f in (%wildcard%) do (
    if not "%%~xf"=="" (
    echo Deleting: %%f 
    del "%%f" 
) else (
    echo Keeping: %%f 
) 
) 

goto :eof 

:syntax 
echo. Syntax: %0 ^<wildcard^> 
echo. 
echo. Example: to delete every file "Filename.*" except "Filename": 
echo. %0 Filename.* 
+0

謝謝巴特!這很好。 – EnvMatt

+0

不客氣EnvMatt! – Bart

2

你可以做這種方式,如果你不介意暫時重命名文件:

ren filename filename_keep 
del filename.* 
ren filename_keep filename 
+0

這是我第一個想到的,它會很好地工作,如果我可以重命名文件。感謝您的輸入! :) – EnvMatt

2

寫了一個有趣的小python腳本。

import os 

for f in os.listdir('.'): 
    if os.path.isfile(f): 
     if '.' in f: 
      os.remove(f) 

只要彈出打開一個python shell並運行它,就像一個魅力。

+0

感謝您爲此我以前從未使用Python,我正在閱讀一本書並將開始玩。感謝您的快速響應! – EnvMatt

相關問題