找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 14022|回复: 7

[文本处理] [已解决]求输出表格,整合某路径下所有文件名和路径,并有一个超链接,谢谢。

[复制链接]
发表于 2024-7-4 10:32:03 | 显示全部楼层 |阅读模式
本帖最后由 wulifaker 于 2024-7-4 22:50 编辑

各位,刚接触批处理几天,只能看的懂一丢丢批处理命令。
现在想增加一点点的需求,具体如下,请帮忙看看:
1.遍历某路径下所有文件,
2.输出一个表格,包含文件名,和具体路径。
3.表格内有超链接,能通过单击链接打开文件。

现在的进度是,第3个需求差一点点。无法将所有内容排列成一行行输出。这个跟我循环没用好有关,也不清楚怎么才能循环出我想要的结果,希望有大佬能指点迷津一下,非常感谢。
而且我无法根据全部文件个数生成超链接个数,只能估个大概数字,例如100。
具体代码如下:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p scan_dir=请输入你要扫描的文件路径:
  4. echo 你要扫描的文件路径为: %scan_dir%
  5. set /p save_file_name=请输入你要保存的文件名称(输入名称即可(不需要输入后缀,默认保存为.xlsx表格文件):
  6. echo 你要保存的文件名称为《%save_file_name%.xlsx》
  7. echo 文件链接        文件名称        全路径>>C:\Users\liufeng\Desktop\%save_file_name%.xlsx
  8. for /l %%i in (101,1,200) do echo =Hyperlink(C%%i,B%%i)>>C:\Users\liufeng\Desktop\%save_file_name%.xlsx
  9. for /R "%scan_dir%" %%I in (*) do (
  10.     set file_name=%%~nI%%~xI
  11.     set file_fullpath=%%~fI
  12.     echo                !file_name!        !file_fullpath! >>C:\Users\liufeng\Desktop\%save_file_name%.xlsx
  13. )
  14. pause
复制代码

图片因为放不上来,所以上传了一个链接,请帮忙解惑,非常感谢。
链接: https://pan.baidu.com/s/1cr4a_ZP2TsLyMCkYJOXN8w?pwd=reuh 提取码: reuh 复制这段内容后打开百度网盘手机App,操作更方便哦

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2024-7-4 12:01:28 | 显示全部楼层
.xlsx不是纯文本文件,bat不方便编辑,最好输出为csv
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p scan_dir=请输入你要扫描的文件路径:
  4. echo 你要扫描的文件路径为: %scan_dir%
  5. set /p save_file_name=请输入你要保存的文件名称(输入名称即可(不需要输入后缀,默认保存为.csv表格文件):
  6. echo 你要保存的文件名称为《%save_file_name%.csv》
  7. echo,文件链接,文件名称,全路径>C:\Users\liufeng\Desktop\%save_file_name%.csv

  8. (for /R "%scan_dir%" %%I in (*) do (
  9.     set file_name=%%~nI%%~xI
  10.     set file_fullpath=%%~fI
  11.     echo,"=Hyperlink(""!file_fullpath!"",""!file_name!"")",!file_name!,!file_fullpath!
  12. )) >>C:\Users\liufeng\Desktop\%save_file_name%.csv
  13. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2024-7-4 13:15:04 | 显示全部楼层
回复 1# wulifaker


如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
 楼主| 发表于 2024-7-4 14:09:28 | 显示全部楼层
回复 2# buyiyang


    谢谢解惑,一看了一下你写的,我就知道我写的哪里不合适了。非常感谢百忙之中帮我解答。
 楼主| 发表于 2024-7-4 14:10:46 | 显示全部楼层
回复 3# Batcher


    好的,谢谢指引,感谢,正愁怎么贴图。
 楼主| 发表于 2024-7-4 16:14:46 | 显示全部楼层
.xlsx不是纯文本文件,bat不方便编辑,最好输出为csv
buyiyang 发表于 2024-7-4 12:01


刚刚试了一下,发现文件名称包含空格和逗号会造成跳格,导致不在同一单元格内。
后面发现在此句当中给!file_name!和!file_fullpath!分别加入双引号,即可解决问题。
如:echo,"=Hyperlink(""!file_fullpath!"",""!file_name!"")","!file_name!","!file_fullpath!"
发表于 2024-7-4 18:38:28 | 显示全部楼层
文件路径是手打的还是拖放的或者是右键复制的路径?是不是需要注意下引号和空格的问题?
  1. set /p scan_dir=请输入你要扫描的文件路径:
  2. for /f "delims=" %%a in ("%scan_dir%") do (
  3.         set scan_dir=%%~a
  4. )
  5. >>"C:\Users\liufeng\Desktop\%save_file_name%.csv" echo 文件链接,文件名称,全路径
复制代码
 楼主| 发表于 2024-7-4 22:44:56 | 显示全部楼层
回复 7# 77七


    路径是我复制的,如果是输出的要注意下引号和空格的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 22:05 , Processed in 0.020964 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表