所以,我有一堆沒有擴展名的文件。我想寫一個Windows批處理腳本,將:查找並重命名沒有擴展名的文件?
- 查找沒有擴展名的文件(在指定的文件夾)
- .bla添加到文件名
我結束這樣的Windows批處理腳本noob我什至不知道從哪裏開始。建議?
所以,我有一堆沒有擴展名的文件。我想寫一個Windows批處理腳本,將:查找並重命名沒有擴展名的文件?
我結束這樣的Windows批處理腳本noob我什至不知道從哪裏開始。建議?
對於Windows批處理文件,這將重命名文件只有不帶擴展名的.bla擴展:
rename *. *.bla
通知的第一個參數是一個明星,一個點:*。
第二個參數是:* .bla
開始點組合表示與在此上下文中沒有擴展名的文件(*)。
前:
06/21/2009 11:57 PM 6 test
06/21/2009 11:57 PM 7 test.exe
06/21/2009 11:57 PM 7 test2
後:
06/21/2009 11:57 PM 6 test.bla
06/21/2009 11:57 PM 7 test.exe
06/21/2009 11:57 PM 7 test2.bla
附加說明:相反的命令行都會.bla文件重命名爲沒有擴展名的文件。
編輯:
對於遞歸重命名跨越的子目錄沒有擴展名(不支持空格路徑)文件:
@echo off
FOR /F %%i in ('dir /b/s/A-d') DO (
if "%%~xi" == "" rename "%%~fi" "%%~ni.bla"
)
EDIT2:
對於遞歸重命名文件沒有跨子目錄的擴展(支持路徑中的空格):
@echo off
for /f "tokens=* delims= " %%i in ('dir /b/s/A-d') DO (
if "%%~xi" == "" rename "%%~fi" "%%~ni.bla"
)
做這個子目錄中的使用:
for /f %a in ('dir /b /ad /s') do rename %a\*. *.bla
如果你是在一個批處理文件中使用此,你需要加倍 '%'
for /f %%a in ('dir /b /ad /s') do rename %%a\*. *.bla
編輯:
如果你的目錄名中有空格,你可以試試這個(批量版):
for /f "tokens=* delims= " %%a in ('dir /b /ad /s') do rename "%%a\*." "*.bla"
下面是遞歸重命名沒有擴展名的文件的另一個可能的命令(假設文件路徑不包含空格):
for /f %i in ('dir *. /b /s /a-d') do rename "%~fi" "%~ni.bla"
批次版(帶一倍%
):
@echo off
for /f %%i in ('dir *. /b /s /a-d') do (
rename "%%~fi" "%%~ni.bla"
)
如果文件或文件夾名稱包含空格,請使用此c ommand代替:
for /f "tokens=* delims= " %i in ('dir *. /b /s /a-d') do rename "%~fi" "%~ni.bla"
批量版本:
@echo off
for /f "tokens=* delims= " %%i in ('dir *. /b /s /a-d') do (
rename "%%~fi" "%%~ni.bla"
)
編輯:這裏有更短的一行,支持在路徑空間:
for /r %i in (*.) do ren "%~fi" "%~ni.bla"
批量版本:
@for /r %%i in (*.) do ren "%%~fi" "%%~ni.bla"
我認爲,但名稱末尾甚至沒有點......這是否仍然有效? – Alan 2009-06-22 04:01:02
另外,我將如何包含子文件夾? – Alan 2009-06-22 04:02:17