所以,我有一堆没有扩展名的文件。我想写一个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