跳到正文

批处理_文件名操作

使用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 

版权声明:本站资源仅限合法使用,请勿用于非法用途。