Board logo

标题: [文件操作] 批处理怎样更改替换文件名? [打印本页]

作者: fallout    时间: 2011-5-19 21:01     标题: 批处理怎样更改替换文件名?

比如我现在的老文件名为715399    新文件名有另一组文件夹为  3 0286267153990 惠朗财务装订机B

比如我现在的老文件名为815580新文件名有另一组文件夹为 3 0489108155807 A580页无线本6'S B


我有1000个这样的文件价 他们中间有6位是相同的,我需要把前面6位的简称换成后面的全称  有什么方法可以实现


附件是rar,因为论坛不允许上传RAR,所以我把附件改为JPG了。您下载后可以改为RAR,就可以看到我放进去的一部分文件夹名字实例了


万般感谢。
作者: CrLf    时间: 2011-5-19 21:21

本帖最后由 zm900612 于 2011-5-19 23:31 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. (for %%a in (*.文件的后缀名) do (
  3.    for /d %%b in ("另一个文件夹路径\*") do (
  4.       set tmp=%%b
  5.       if "!tmp:%%a=!" neq "!tmp!" ren "%%a" "%%~nb%%~xa"
  6.    )
  7. ))>nul 2>nul
  8. pause
复制代码

作者: fallout    时间: 2011-5-19 21:43

楼上的大哥 代码貌似不行啊
作者: CrLf    时间: 2011-5-19 21:52

原先有点笔误,改了,现在试试
作者: batman    时间: 2011-5-19 21:53

本帖最后由 batman 于 2011-5-19 21:54 编辑

只知道别人的代码不行,你自己将问题描述清楚了?我根本搞不清你这另一组文件夹是什么意思,还有你要重命名的文件没有后缀?
作者: fallout    时间: 2011-5-19 21:55

超版来了  老婆快来看上帝


超版大人,实际上是文件价的名字。
或者能把文件的6位字母直接替换为EXCEL里面的文件名也行。 他们只是中间几位重复,别的没有重复的。
所以需要电脑有一个搜索对比的过程,这个我搞不定。
作者: batman    时间: 2011-5-19 22:03

本帖最后由 batman 于 2011-5-19 22:37 编辑

先把excel中的文件夹名复制到文件夹所在目录的a.txt中(一行一个),并在文件夹所在目录运行此批:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1-2*" %%a in (a.txt) do (
  3.      set "str=%%b"
  4.      if exist !str:~-7,-1! ren !str:-7,-1! "%%a %%b %%c"
  5. )
复制代码
ps:要求a.txt中的文件夹名全为3 0489108155807 A580页无线本6'S B这样的形式,即重复的部分总是如同红色标示部分,位于以空格为分隔的第二部分字符串(蓝色标示)的后七位中(重复字符后有另外一个字符)。。。
作者: fallout    时间: 2011-5-19 22:11

超版大人 尝试了 没什么反映

你的意思是不是把A.TXT里面一行一个的名字 各建立成一个文件夹?

@echo off

for /f "tokens=*" %%i in (1.txt) do (md "%CD%\%%i")

pause

exit
------------
@echo off

for /f %%i in (1.txt) do echo %%i>%%i.txt

pause

exit
作者: batman    时间: 2011-5-19 22:16

本帖最后由 batman 于 2011-5-19 22:26 编辑

8# fallout
没反应,你是照我上面所说的去做的吗?你理解了所在目录的意思吗?
a(所在目录)
/\
b c(b c均为要重命名的文件夹)

7楼代码改得更简洁了(开始思维定向,总在想着变量赋值法)
作者: CrLf    时间: 2011-5-19 22:17

忽然发现顶楼说有附件,我怎么没看到




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