Board logo

标题: [文件操作] 批处理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 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /r %%i in (*.txt) do (
  4. set strfn=%%~ni%%~xi
  5. set strfna=!strfn:~0,-4!
  6. set strfnb=!strfn:~-4!
  7. set strfnew=!strfna!abc!strfnb!
  8. ren %%i !strfnew!
  9. )
复制代码

作者: 522235677    时间: 2014-10-13 13:16

  1. @echo off & setlocal enabledelayedexpansion
  2. set str=abc
  3. for /f "delims=" %%a in ('dir /b *.xls') do ren "%%a" "%%~na!str!%%~xa"
  4. pause
复制代码

作者: DAIC    时间: 2014-10-13 15:47

回复 2# jian123ch


    你这个代码根本没有测试过吧?
作者: DAIC    时间: 2014-10-13 15:57

回复 3# 522235677


不需要变量延迟扩展
  1. @echo off
  2. set "str=abc"
  3. 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 是否支持变量名。所以没有全部运行,现在已把原来的代码改了。

不过可以优化一下,优化后的代码为:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /r %%i in (*.txt) do (
  4. set strfn="%%~ni"abc"%%~xi"
  5. ren %%i !strfn!
  6. )
复制代码

作者: 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://bbs.bathome.net/) Powered by Discuz! 7.2