[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]如何读取EXCEL里的信息给文件夹添加上?

本帖最后由 liaoguinan 于 2024-8-5 23:45 编辑



如何读取表格里的数据,按表格顺序给文件夹添加添加后缀中文文字,表格里的文字不固定,且文字前面有个空格

1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 1# liaoguinan


   

TOP

回复 2# ppll2030


    这个方法我知道,有没有办法直接读取表格信息直接就填上?

TOP

本帖最后由 aloha20200628 于 2024-8-6 09:48 编辑

回复 1# liaoguinan

以下代码存为 test.bat 置于 1000-0001-1,1000-0001-2 文件夹所在目录(即 1000-0001 目录)下运行,假设目标文件 1.xls 与 test.bat 同目录
假设 1.xls 被读取的数据存储在 sheet1 表格中,其中各行数据排列顺序与对应的更名文件夹名排序(dir /b/ad 列表排序)一致...
  1. @set @v=1 /* &echo off &set "xF=%cd%\1.xls"
  2. dir /b/ad|cscript /nologo /e:jscript "%~f0" "%xF%"
  3. if exist "0.tmp" for /f "tokens=1-2 delims=/" %%a in (0.tmp) do ren "%%~fa" "%%b"
  4. 2>nul del/q "0.tmp"&pause&exit/b */
  5. v=WSH.arguments, ws=WSH.stdin, oExcel=WSH.CreateObject('excel.application');
  6. oxF=oExcel.workbooks.Open(v(0)), oSheet=oxF.sheets('sheet1'), lines='', n=0;
  7. while (!ws.atendofstream) {
  8. pF=ws.readline(), xv=oSheet.cells(++n,1).text;
  9. if (!!xv) lines+=pF+'/'+pF+xv+'\n';
  10. }
  11. if (lines=='') WSH.quit();
  12. oxF.close(), oExcel.quit(), fso=WSH.createObject('Scripting.FileSystemObject');
  13. fp=fso.OpenTextFile('0.tmp',2,true), fp.write(lines.slice(0,-1)), fp.close(), WSH.quit();
复制代码
1

评分人数

TOP

回复 4# aloha20200628


    代码可行,有一点问题就是如果表格里只有三行数据的话,实际有4个文件夹第四个文件夹会加1000-0001-4undefined这样的后缀,能否改成表格有多少行数据,就改多少的文件夹?

TOP

回复 5# liaoguinan

4楼代码已订正,再试试吧...

TOP

返回列表