中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]解释一下无奈何编写的代码
作者:
标题: [求助]解释一下无奈何编写的代码 上一主题 | 下一主题
wydos
中级用户





积分 304
发帖 117
注册 2006-4-4
状态 离线
『楼 主』:  [求助]解释一下无奈何编写的代码


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%
此两行代码是什么作用?

2007-10-16 09:37
查看资料  发送邮件  发短消息 网志  OICQ (327337973)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: