标题: [文件操作] 批处理怎样更改替换文件名? [打印本页]
作者: 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 编辑
- @echo off&setlocal enabledelayedexpansion
- (for %%a in (*.文件的后缀名) do (
- for /d %%b in ("另一个文件夹路径\*") do (
- set tmp=%%b
- if "!tmp:%%a=!" neq "!tmp!" ren "%%a" "%%~nb%%~xa"
- )
- ))>nul 2>nul
- 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中(一行一个),并在文件夹所在目录运行此批:- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=1-2*" %%a in (a.txt) do (
- set "str=%%b"
- if exist !str:~-7,-1! ren !str:-7,-1! "%%a %%b %%c"
- )
复制代码
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 |