![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 23:30 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 替换文件名中的字符串不成功 |
| 可打印版本 1,372 / 3 |
| 第1楼 lijinan | 发表于 2009-12-20 23:11 |
| 初级用户 发帖 12 积分 33 | |
|
替换文件名中的字符串不成功 :: 本批处理查找当前目录下文件并替换文件中指定的字符串.
@echo off color 1f :loop1 set suffix= set /p suffix=输入要查找的后缀名: if not defined suffix echo 未输入后缀名 & goto loop1 :loop2 set find_string= set /p find_string=输入要查找的字符串: if not defined find_string echo 未输入需要查找的字符串! & goto loop2 :loop3 set replace_string= set /p replace_string=输入替换后的字符串: if not defined replace_string echo 未输入替换后的字符串! & goto loop3 for /r .\ %%a in ("*.%%suffix") do ( set "str=%%~na" setlocal enabledelayedexpansion set "str=!str:%%find_string=%%replace_string!" rename "%%~na.%%suffix" "!str!%%~xa" endlocal ) goto end :: 结束程序 :end echo. echo 任意键退出! pause >nul 2>nul exit 要求替换当前目录下文件中的字符串,不知为何无法执行成功。谢谢。 |
|
| 第2楼 qinchun36 | 发表于 2009-12-21 00:37 |
| 高级用户 发帖 400 积分 609 | |
|
你自己echo %%suffix和echo %suffix%看看
|
|
| 第3楼 wuchan | 发表于 2010-01-01 15:54 |
| 初级用户 发帖 59 积分 119 | |
|
试验了你的。文件找不到。。。。。
"*.%%suffix") set "str=!str:%%find_string=%%replace_string!" 这些应该有错吧。 |
|
| 第4楼 qinchun36 | 发表于 2010-01-04 14:33 |
| 高级用户 发帖 400 积分 609 | |
|
....
我的意思是你写错了。 你定义的变量和FOR里面的变量写法不一样的,批处理文件中, 在 FOR 里面当然是用两个百分号,即你的 %%a 语法是对的, 但是你外面定义的变量 suffix 、find_string 、replace_string 都写错了,应该是用百分号包起来,这样 for /r .\ %%a in ("*.%suffix%") do ( set "str=%%~na" setlocal enabledelayedexpansion set "str=!str:%find_string%=%replace_string%!" rename "%%~na.%suffix%" "!str!%%~xa" endlocal ) 看来你是基础知识有问题啊。。。。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |