Board logo

标题: [文件操作] 批处理如何根据excel表格的内容批量修改文件名 [打印本页]

作者: 511182890    时间: 2016-1-6 14:33     标题: 批处理如何根据excel表格的内容批量修改文件名?6楼有新的总结

改名前文件名:
AD1011奥迪车.DSN
AD1011-G1101-AA.DSN
AD1011-G1101-AA-118-主副背料-四向-749.dxf
AD1011-G1101-AA-118-主副背料-四向-(12345)-749.dxf
改名后文件名:
AD1011T奥迪车.DSN
AD1011T-G1101-AA.DSN
AD1011T-G1101-AA-118-主副背料-四向-749.dxf
AD1011T-G1101-AA-118-主副背料-四向-(12345)-749.dxf

需要改的名字全部在一个表格中,现在能不能用批处理调用表格改名。一个个改的软件我有!
麻烦各位大仙大神了。
作者: 511182890    时间: 2016-1-6 15:26

用ren命令怎么改,有包括子文件夹
作者: pcl_test    时间: 2016-1-6 16:18

txt不好?

水一发,读取表格内容
  1. /*&cls
  2. @echo off
  3. ::设置表格路径
  4. set "xlsfile=D:\改名.xls"
  5. cscript -nologo -e:jscript "%~f0" "%xlsfile%"
  6. pause&exit
  7. */
  8. var objExcel = new ActiveXObject('Excel.Application');
  9. var objBook = objExcel.Workbooks.open(WScript.Arguments(0));
  10. objBook.worksheets(1).activate;   //设置Sheet1为活动工作表
  11. var objSheet = objBook.activeSheet;
  12. var cnt = objSheet.usedrange.rows.count;
  13. for(var i = 2; i<=cnt; i++) {   //从第2行开始
  14.     var A= objSheet.Cells(i, 1).value;  //A列
  15.     var B= objSheet.Cells(i, 2).value;  //B列
  16.     WSH.echo(A+' --> '+B);
  17. }
  18. objBook.Close();
  19. objExcel.Quit();
复制代码

作者: pcl_test    时间: 2016-1-6 16:25

来个第三方
ren2 -f -r "(AD1011)([^T].*)" "$1T$2"
作者: 511182890    时间: 2016-1-7 15:23

回复 4# pcl_test


    二种方法表示都不行。
作者: 511182890    时间: 2016-1-21 11:17     标题: 批处理如何根据excel表格的内容批量修改文件名

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /a-d/b/s/q *.*') do (
  4.     set "var=%%~na"
  5.     set newn=!var:AD1011=AD1011T!
  6.     ren "%%a" "!newn!%%~xa"
  7. )
  8. for /f "delims=" %%a in ('dir /a-d/b/s/q  *.*') do (
  9.     set "var=%%~na"
  10.     set newn=!var:AD1012=AD1012T!
  11.     ren "%%a" "!newn!%%~xa"
  12. )
  13. for /f "delims=" %%a in ('dir /a-d/b/s/q  *.*') do (
  14.     set "var=%%~na"
  15.     set newn=!var:AD1013=AD1013T!
  16.     ren "%%a" "!newn!%%~xa"
  17. )
  18. echo end...
  19. pause
复制代码
已有代码,我需要改的名字有5000个左右,所有包含子目录有17000个文件夹,400W文件,求优化。上面这个代码把5000个左右的文件都填,有这么多的文件夹,扫描就卡死了。
求个方便处理的程序。
这是一部分文件名
作者: pcl_test    时间: 2016-1-21 20:23

只想说,假设已有一个文件名为AD1011Txxxxx,你6楼的代码没做筛选,那么改名后就是AD1011TTxxxxx了
作者: codegay    时间: 2016-1-22 00:12

可以考虑把excel转成CSV文件。批处理读取csv方便。
作者: CrLf    时间: 2016-1-22 00:15

http://www.bathome.net/s/tool/index.html?key=excel
作者: 511182890    时间: 2016-1-23 14:52

回复 7# pcl_test


    是的,我后来全部加了“-”
作者: codegay    时间: 2016-1-26 23:44

回复 9# CrLf


   
  1. c:\>excel /?
  2. This program needs Java to run.
  3. Please download it at http://www.java.com
复制代码





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