Board logo

标题: [文件操作] 批处理如何对应表格批量修改文件夹名称? [打印本页]

作者: 脑袋大    时间: 2023-8-29 18:33     标题: 批处理如何对应表格批量修改文件夹名称?


作者: 77七    时间: 2023-8-29 20:51

图片
作者: 77七    时间: 2023-8-29 20:57

表格是什么格式的?
作者: czjt1234    时间: 2023-8-29 21:09

回复 3# 77七


    图中有sheet1,应该是excel
作者: 77七    时间: 2023-8-29 21:41

  1. @echo off
  2. rem 将表格复制到 1.txt 文本中
  3. for /f "useback tokens=1-2" %%a in ("1.txt") do (
  4. if exist "%%a" ren "%%a" "%%a_1"
  5. )
  6. for /f "useback tokens=1-2" %%a in ("1.txt") do (
  7. if exist "%%a_1" ren "%%a_1" "%%b"
  8. )
  9. pause
复制代码
使用前先测试一下!
作者: Batcher    时间: 2023-8-29 22:16

回复 1# 脑袋大


打开你的Excel表格,另存为 1.csv,放在待处理的文件夹同一个目录下。

请参考Q-04把test.bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "skip=1 tokens=1-2 delims=," %%i in ('type "1.csv"') do (
  4.     if exist "%%i" (
  5.         ren "%%i" "%%j"
  6.     )
  7. )
复制代码

作者: Five66    时间: 2023-8-30 02:19

本帖最后由 Five66 于 2023-8-30 03:46 编辑

表格需要为microsoft office的xlsx
将表格改名为book1.xlsx
然后跟批处理一起放到需要改名的目录下运行
还有启动excel时间过长时代码可能出错,建议先启动一次excel然后立马关闭
改名时时表格里对不上可能会出现奇怪问题
  1. @set @theCopyLeft=0;/*&echo off&pause
  2. rem 将表格改名为book1.xlsx然后跟 批处理一起放到需要的目录下运行
  3. set ttm=the-%date:~0,10%-temp
  4. set ttm=%ttm:/=-%
  5. md %ttm%
  6. if %errorlevel% EQU 1 echo can not create temp folder&exit /b
  7. for /f "skip=1 tokens=1,2 delims=/ " %%i in ('cscript //nologo //e:jscript "%~f0"') do (
  8. if exist "%%i" move "%%i" "%ttm%\%%j" 1>nul
  9. )
  10. for /d %%i in (*) do if "%%i" NEQ "%ttm%" rename "%%i" "___%%i"
  11. for /d %%i in ("%ttm%\*") do (1>nul move "%%i" .)
  12. rmdir %ttm%
  13. pause &exit/b
  14. rem */
  15. var thefile="book1.xlsx";
  16. var eee=new ActiveXObject("excel.application");
  17. var thepath=WScript.ScriptFullName.split("\\");
  18. thepath.pop();
  19. thepath=thepath.join("\\")+"\\";
  20. var wb=eee.Workbooks.Open(thepath+thefile);
  21. var sheet=wb.ActiveSheet;
  22. var a,b,i=1;
  23. while(1){
  24. a=sheet.Range("A"+i).text;
  25. b=sheet.Range("B"+i).text;
  26. if(!a || !b){break;}
  27. WScript.Echo(a,"/",b);
  28. i+=1;
  29. }
  30. wb.Close();
  31. eee.Quit();
复制代码
还有为啥这个帖子是倒序的?
作者: Nsqs    时间: 2023-8-31 06:47

本帖最后由 Nsqs 于 2023-8-31 08:20 编辑
  1. $path='某路径'
  2. # 不指定路径将以当前路径修改为准
  3. if (!(Test-Path $path -PathType Container)){$path=$PSScriptRoot}
  4. cd $path
  5. $data=Import-Excel '某.xlsx' -DataOnly -HeaderName A,B
  6. $data|?{$_.A -ne $null}|%{ren $_.A $_.B}
复制代码
用PowerShell的excel库实现




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