标题: [文件操作] 批处理ren命令怎样为文件名添加指定字符串? [打印本页]
作者: lgk99 时间: 2014-10-13 10:22 标题: 批处理ren命令怎样为文件名添加指定字符串?
求助给位大神:比如我有N个文件,如,想要在后面加上字符“abc”,用命令ren *.xls *abc.xls 变成了,请问大家如何解决?thanks!!!
作者: jian123ch 时间: 2014-10-13 11:03
本帖最后由 jian123ch 于 2014-10-13 16:51 编辑
- @echo off
- setlocal enabledelayedexpansion
- for /r %%i in (*.txt) do (
- set strfn=%%~ni%%~xi
- set strfna=!strfn:~0,-4!
- set strfnb=!strfn:~-4!
- set strfnew=!strfna!abc!strfnb!
- ren %%i !strfnew!
- )
复制代码
作者: 522235677 时间: 2014-10-13 13:16
- @echo off & setlocal enabledelayedexpansion
- set str=abc
- for /f "delims=" %%a in ('dir /b *.xls') do ren "%%a" "%%~na!str!%%~xa"
- pause
复制代码
作者: DAIC 时间: 2014-10-13 15:47
回复 2# jian123ch
你这个代码根本没有测试过吧?
作者: DAIC 时间: 2014-10-13 15:57
回复 3# 522235677
不需要变量延迟扩展- @echo off
- set "str=abc"
- for /f "delims=" %%i in ('dir /b *.xls') do ren "%%i" "%%~ni%str%%%~xi"
复制代码
作者: jian123ch 时间: 2014-10-13 16:21
回复 4# DAIC
我测试过,不过是将*.xls换成了*.txt来测试的。
作者: DAIC 时间: 2014-10-13 16:35
回复 6# jian123ch
你在什么操作系统里面测试的?
据我说知,ren命令的第二个参数不能是完整路径名。
作者: jian123ch 时间: 2014-10-13 16:54
本帖最后由 jian123ch 于 2014-10-13 17:02 编辑
回复 7# DAIC
您说的没错,我是直接在命令行下,直接敲入最后一句来验证ren 是否支持变量名。所以没有全部运行,现在已把原来的代码改了。
不过可以优化一下,优化后的代码为:- @echo off
- setlocal enabledelayedexpansion
- for /r %%i in (*.txt) do (
- set strfn="%%~ni"abc"%%~xi"
- ren %%i !strfn!
- )
复制代码
作者: DAIC 时间: 2014-10-13 17:25
回复 8# jian123ch
ren的第一个参数也需要加双引号,否则无法处理包含空格的文件名。
作者: 522235677 时间: 2014-10-13 17:40
回复 5# DAIC
开始我也是这么想,后来发现有问题呢,加延迟就好了
作者: DAIC 时间: 2014-10-13 17:43
回复 10# 522235677
有什么问题?
作者: jian123ch 时间: 2014-10-13 17:54
回复 9# DAIC
谢谢指点。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |