Board logo

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

作者: nanlu2014    时间: 2014-9-12 09:27     标题: 批处理怎样给文件夹改名?

各位好,目前公司里和银行有业务往来,每周会发送文件,但是文件夹的名称五花八门。有没有办法通过文件夹里的中文为判断把文件夹改成纯数字的。比如“云南机场20140904-20140910” 改成00370056,然后再执行COPY命令把改好后的文件夹复制到指定的路径。因为自己对BAT不精通,所以请各位高手帮忙想想办法。谢谢!
作者: Linuxer    时间: 2014-9-12 09:50

文件夹肯定不止“云南机场20140904-20140910”这一个吧
所有你要把改变的规律写出来,就是变成00370056这个规则是什么?
如果说规则不方便透漏,那你也可以用类似你们内部机构代码编制的“模拟”规则来表示。
这样大家才好帮你写代码,
作者: nanlu2014    时间: 2014-9-12 10:08

本帖最后由 nanlu2014 于 2014-9-12 10:11 编辑

回复 2# Linuxer

嗯,银行有很多家。组合也不只这一个,而且我前面说的00370056也只是其中一个内部代码,这些代码完全是不规则的。而且给过来的文件夹也不是规则的。
作者: xudaweb    时间: 2014-9-12 10:23

回复 3# nanlu2014

待处理的文件夹也没有规律?比如名字含有云南的有几个文件夹?每个名字都是什么样子的。如果没有规律,脚本不好判断吧。
作者: nanlu2014    时间: 2014-9-12 10:40

回复 4# xudaweb

你好,文件夹部份是有规律的。
这是其中有规律和没规律的文件截图。只是一部分,还有很多没规律的,,头大。
作者: DAIC    时间: 2014-9-12 10:48

回复 5# nanlu2014


    你手工重命名的话,会依据什么条件?如果连手工重命名都没有任何依据,那更不可能转换成代码了。
作者: nanlu2014    时间: 2014-9-12 13:40

回复 6# DAIC

手工重命名就是把文件夹的名字改成00370056类似这种的数字
作者: DAIC    时间: 2014-9-12 13:43

回复 7# nanlu2014


    为什么是00370056而不是12345?依据是什么?
作者: nanlu2014    时间: 2014-9-12 13:50

回复 8# DAIC

这是这个组合的内部代码。为了方便另一个软件读取
作者: tcasdsss    时间: 2014-9-12 14:07

楼主的意思应该是别人给他发一个list 一列是原名称 另一列是改完后的名称 两者一一对应
作者: nanlu2014    时间: 2014-9-12 14:13

回复 10# tcasdsss

差不多是这个意思。有10来家银行不同的组合,这个就可以理解成list的原名称,然后这每个组合都有一个固定的内部代码,这些内部代码都没有规律可寻。00370056、00231260像这样。
作者: DAIC    时间: 2014-9-12 14:48

回复 9# nanlu2014


    以5楼截图为例,请告诉我青海银行、三门峡、太平投资、中信投资分别对应哪个数字。
作者: nanlu2014    时间: 2014-9-12 15:02

回复 12# DAIC

写在代码里能替换么?如果能替换,随便用数字代替行么?
作者: nanlu2014    时间: 2014-9-12 15:28

回复 12# DAIC

代码如下
青海银行 00730967
三门峡 00730947
中国电力太平 00731135
中国电力中信 00331138
作者: DAIC    时间: 2014-9-12 15:57

创建一个文件 a.txt
文件夹名称和数字用冒号分割,内容如下
青海银行企业年金太平投资组合:00730967
三门峡黄河明珠(集团)企业年金太平投资组合:00730947
中国电力顾问太平投资组合:00731135
中国电力顾问中信投资组合:00331138

执行代码 test.bat
  1. @echo off
  2. for /f "tokens=1,2 delims=:" %%i in (a.txt) do (
  3.     ren "%%i" "%%j"
  4. )
复制代码

作者: nanlu2014    时间: 2014-9-12 16:11

回复 15# DAIC

可以用了。感谢啊!
另外 ,能不能把改好的目录复制到指定的地方?
作者: Linuxer    时间: 2014-9-18 10:50

回复 16# nanlu2014

加个xcopy复制过去就行了。
  1. ...
  2. ren "%%i" "%%j"
  3. copy "%%j" 指定路径 /s
  4. ...
复制代码





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