Board logo

标题: [文件操作] 批处理怎样修改压缩包里的文件名? [打印本页]

作者: zjhuangjw    时间: 2016-1-25 04:16     标题: 批处理怎样修改压缩包里的文件名?

本帖最后由 pcl_test 于 2016-1-25 19:54 编辑
  1. @echo off
  2. set "rar=C:\Program Files\WinRAR\RAR.exe"
  3. for /r %%i in (*.rar) do (
  4. "%rar%" rn "%%i" 【这里是不需要的,替换为我自己的】这里是需要的.doc 【我自己的】这里是需要的.doc
  5. )
  6. pause
复制代码
这样子需要怎么修改呢?小白,感谢
作者: gawk    时间: 2016-1-25 13:06

rar的rn命令只支持通配符,不支持正则表达式,所以它无法完成你想要的功能。
改成这样吧:解压缩,重命名,压缩。
作者: zjhuangjw    时间: 2016-1-26 01:00

@echo off&setlocal enabledelayedexpansion
for /r %%i in (*.doc) do (
  set "str=%%i"
  ren "%%i" "!str:2222=5555!"
)
pause

这句为什么加/r 就语法错误?
作者: zjhuangjw    时间: 2016-1-26 12:53     标题: 批处理怎样修改压缩包里的文件名?

本帖最后由 pcl_test 于 2016-1-26 20:26 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /r %%i in (*.doc) do (
  3.   set "str=%%i"
  4.   ren "%%i" "!str:2222=5555!"
  5. )
  6. pause
复制代码
这句为什么加/r 就语法错误?所有子目录下面应该怎么写?
作者: wskwfkbdn    时间: 2016-1-26 16:43

本帖最后由 wskwfkbdn 于 2016-1-26 16:47 编辑

@ECHO OFF&setlocal enabledelayedexpansion
for /r  %%i in (*.doc) do (
  set xiao="%%i"
  echo !xiao!
)
pause


---------------------------------------------------------------------------------------------

@ECHO OFF&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b /s *.doc') do (
  set xiao="%%i"
  echo !xiao!
)
pause

作者: WHY    时间: 2016-1-26 18:48

C:\Users\Administrator>ren /?
重命名文件。

RENAME [drive:][path]filename1 filename2.
REN [drive:][path]filename1 filename2.

请注意,您不能为目标文件指定新的驱动器或路径。
作者: zjhuangjw    时间: 2016-1-26 19:31

谢谢,我要替换本文件夹下面的 所有子目录里面的.doc 文件名中的某些字符串 如: 【下载自aaa】知识.doc  替换成【下载自bbb】知识.doc
作者: gawk    时间: 2016-1-27 20:49

回复 7# zjhuangjw


    具体的对应关系是什么?aaa改成bbb,那么xxx改成什么呢




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2