标题: [求助]解释一下无奈何编写的代码
[打印本页]
作者: wydos
时间: 2007-10-16 09:37
标题: [求助]解释一下无奈何编写的代码
cls
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: SendTo+ -V0.1 --ReTextName.cmd
:: 无奈何@cn-dos.net - 2006-8-18 - mail:wunaihe@gmail.com
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off
::删除批量重命名记录文件
set log="%~dp0ReNameLog.ini"
del %log% 2>nul
:loop
if "%~1" == "" goto :EOF
call :rname "%~1"
shift
goto loop
:rname
setlocal ENABLEDELAYEDEXPANSION
set "firstline="
for /f "usebackq delims=" %%a in ("%~1") do (
if not defined firstline set firstline=%%a&&goto replac
)
:replac
::替换文件名中非法字符
set firstline=!firstline:\=-!
set firstline=!firstline:/=-!
set firstline=!firstline:^<=-!
set firstline=!firstline:^>=-!
set firstline=!firstline::=-!
set firstline=!firstline:?=-!
set firstline=!firstline:"=-!
set firstline=!firstline:^|=-!
:next
set trailstr=!firstline:**=!
set beginstr=!!firstline:%trailstr%=!!
if "%beginstr%" == "" goto rn
set beginstr=!beginstr:~0,-1!
set firstline=%beginstr%-%trailstr%
goto next
:rn
ren "%~1" "!firstline:~0,128!"%~x1
if not ERRORLEVEL 1 echo."%~1" "!firstline:~0,128!"%~x1>>%log%
endlocal
goto :EOF
此批处理中
:next
set trailstr=!firstline:**=!
set beginstr=!!firstline:%trailstr%=!!
if "%beginstr%" == "" goto rn
set beginstr=!beginstr:~0,-1!
set firstline=%beginstr%-%trailstr%
goto next
是什么作用?
特别是: set trailstr=!firstline:**=! 和 set firstline=%beginstr%-%trailstr%
此两行代码是什么作用?