标题: [文件操作] [已解决]批处理怎样实现文件批量改名? [打印本页]
作者: a382039369 时间: 2011-6-1 13:20 标题: [已解决]批处理怎样实现文件批量改名?
本帖最后由 a382039369 于 2011-6-1 20:31 编辑
- @echo off
- %~d1
- cd %~d1%~p1
- set /a a=0
- :loop
- if [%~1]==[] goto exit
- if exist %a%%~x1 goto next
- ren "%~n1%~x1" "%a%%~x1"
- shift
- :next
- set /a a=%a%+1
- goto loop
- :exit
复制代码
这个修改文件名只能修改名称里没有空格的,求解。本人菜鸟。。。。
作者: a382039369 时间: 2011-6-1 13:39
额 刚才给忘了 抱歉
作者: CrLf 时间: 2011-6-1 14:03
加上双引号就行了- @echo off
- %~d1
- ::看不懂,是为了兼容dos吗?
- cd /d "%~dp1"
- ::建议加上d开关,兼容跨盘符切换。另外扩展的参数可以并用,无需分开
- set a=0
- :loop
- if "%~1"=="" goto exit
- ::建议用双引号代替方括号,以避免文件名带&和空格的情况。
- if exist "%a%%~x1" goto next
- ren "%~nx1" "%a%%~x1"
- shift
- :next
- set /a a=%a%+1
- goto loop
- :exit
复制代码
goto和call虽然易学,但是各方面的消耗都比较大,建议有空可以思考一下如何用for实现
作者: a382039369 时间: 2011-6-1 20:30
加上双引号就行了@echo off
%~d1
::看不懂,是为了兼容dos吗?
cd /d "%~dp1"
::建议加上d开关,兼容跨盘符切换。另外扩展的参数可以并用,无需分开
set a=0
:loop
if "%~1"=="" goto exit
::建议用双引号代 ...
zm900612 发表于 2011-6-1 14:03
%~d1写多余了...... 因为我在命令提示符里面直接cd到其他盘符进不去,所以才会写成这样的 .....
还有就是那个[]改成""的确好些了,当初ren里面就用双引号防止空格问题 ,前面却忘了......
多谢帮助....3Q
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |