天天看点

批处理_文件名操作

使用Revit批量导出CAD或PDF的时候文件名总会带一些前缀,用批处理写了一个小脚本去对文件名进行操作,可以实现批量去除前缀,添加前缀,字符串替换。

以下核心代码:

rem 添加前缀
:cmdAddPrefix
echo 要处理的文件类型:
rem 取得输入的文件类型
set /p type=
echo 添加的前缀:
rem 取得输入的前缀
set /p prefix=
echo.
rem 遍历文件
for /f "delims=" %%i in ('dir /a /b *.%type%') do (
rem 显示修改内容
echo %%i  ^>^>^>  %prefix%%%i
set /a changeFileNum+=1
rem 修改文件名称
ren "%%i" "%prefix%%%i"&&set /a fileNum+=1
)
goto comit
           
rem 删除前缀
:cmdDelPrefix
echo 要处理的文件类型:
rem 取得输入的文件类型
set /p type=
echo 删除的前缀:
rem 取得待删除的前缀 
set /p prefix=
set str=%prefix%
rem 获得前缀的字符长度
:next  
if not "%str%"=="" (  
    set /a preNum+=1
    set "str=%str:~1%"
    goto next
)
rem 变量延迟扩展
setlocal enabledelayedexpansion
echo.
rem 遍历文件
for /f "delims=" %%i in ('dir /a /b %prefix%*.%type%') do (  
set var=%%i
rem 截取字符串
set "var=!var:~%preNum%!"
rem 显示修改内容
echo %%i  ^>^>^>  !var!
set /a changeFileNum+=1
rem 修改文件名称
ren "%%i" "!var!"&&set /a fileNum+=1
)
goto comit
           
rem 替换字符串  
:cmdReplaceStr  
echo 要处理的文件类型:  
rem 取得输入的文件类型  
set /p type=  
echo 被替换的字符:  
rem 取得要被替换的字符串  
set /p str=  
echo 替换的字符:  
rem 取得用于替换的字符串  
set /p str1=  
echo.  
rem 变量延迟扩展  
setlocal enabledelayedexpansion  
rem 遍历文件  
for /f "delims=" %%i in ('dir /a /b *.%type%') do (  
set var=%%i  
rem 替换字符串  
set var=!var:%str%=%str1%!  
rem 显示修改内容  
echo %%i  ^>^>^>  !var!  
set /a changeFileNum+=1  
rem 修改文件名称  
ren "%%i" "!var!"&&set /a fileNum+=1  
)  
goto comit