天涯明月刀称号劫匪:巧用Excel和DOS批处理命令批量修改文件名

来源:百度文库 编辑:中财网 时间:2024/04/29 05:19:21

巧用Excel和DOS批处理命令批量修改文件名  

 题记:最近需要对文件内容作一个统一更名,却不能像之前那样按照有规律的批量操作,而是想利用随机字符串批量修改文件名,google之后,发现没有很合适的工具,大部分是有规律的进行更名。于是想到用批处理,上网找到一个方法,利用execl生成随机字符串并组装dos命令更名,虽然有点死板,倒也简单易用,暂且拿来实现目的,日后有时间再弄个批处理文件,一键搞定。
  在你的Windows电脑上批量修改文件名是非常简单的。选择所有的文件,按F2,然后输入一下描述性的文本。
  Windows将会在每个文件名中加上一个唯一的序列数字。
  这是一个相当快捷的解决方案,但是并不是很灵活,因为你不能自定义修改的方式。
  例如,你如何将当前的日期加在文件名中?或者你想替换掉文件名中的几个文字或字符(如一个拼写错误)?或者你想文件按照一个不同的重命名系统去修改,像这样file-A.jpg,而不是默认的file(1).jpg。
  为了有效的批量修改文件名,你可以学习一些有点复杂的shell编程语言(SED,AWK,Perl)或者更简单的,只是使用一个电子表格和几个dos命令。
  1: 点击Windows左下角的“开始”菜单,选择“运行”,输入 cmd ,回车进入命令行。
  2: 用 cd 命令进入到你想批量修改文件名的文件夹目录。比如这里,我想要进入C盘中的pics文件夹。
  cd 
  cd pics
  3: 输入 dir /b 你可以看见当前文件夹目录下面全部文件的列表。
  输入 dir /b > pics.xls 将的列表输出到pics.xls电子表格。
  
  4: 有趣的东西现在才开始。打开Excel或Google Docs电子表格,你会在第一列中看到刚才文件列表。
  5: 在旁边空白的列中,添加一个相应的function函数公式——例如,使用SUBSTITUTE可以来修改文件名中指定的字符,使用 CONCATENATE() 和 DATE() 可以在文件名中加上日期,等等。
当然,此处我选择使用随机字符串。  
  6: 如上图,选中B1单元格右下角的+加号,向下拖动,这样我们的公式将被复制应用到所有行。
  现在,你原来的文件名在A列,你期望替换成的文件名在B列——我们现在要将它们转化为DOS中的rename命令。
  在C列,输入Excel公式:
  =CONCATENATE("ren ",A1, " ", B1)
  点击函数的对号,确认输入无误后,拖到右下角的+加号,应用到所有行。
  
  7: 选中C列,点击“复制”,在C盘pics文件夹目录下,创建一个rename.bat文件,将复制的内容粘贴进去。
  
  8: 现在我们已经基本要完成了。在C:pics下输入命令rename.bat,然后回车,你会发现pics目录下的文件名已经按照你期望的方式全部被修改了
注:随机生成六位数字字母串:=CONCATENATE(IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))))
这个老长了,有时间再找个更好的办法。