Board logo

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

作者: wulifaker    时间: 2024-7-4 10:32     标题: [已解决]求输出表格,整合某路径下所有文件名和路径,并有一个超链接,谢谢。

本帖最后由 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,操作更方便哦
作者: buyiyang    时间: 2024-7-4 12:01

.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
复制代码

作者: Batcher    时间: 2024-7-4 13:15

回复 1# wulifaker


如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
作者: wulifaker    时间: 2024-7-4 14:09

回复 2# buyiyang


    谢谢解惑,一看了一下你写的,我就知道我写的哪里不合适了。非常感谢百忙之中帮我解答。
作者: wulifaker    时间: 2024-7-4 14:10

回复 3# Batcher


    好的,谢谢指引,感谢,正愁怎么贴图。
作者: wulifaker    时间: 2024-7-4 16:14

.xlsx不是纯文本文件,bat不方便编辑,最好输出为csv
buyiyang 发表于 2024-7-4 12:01


刚刚试了一下,发现文件名称包含空格和逗号会造成跳格,导致不在同一单元格内。
后面发现在此句当中给!file_name!和!file_fullpath!分别加入双引号,即可解决问题。
如:echo,"=Hyperlink(""!file_fullpath!"",""!file_name!"")","!file_name!","!file_fullpath!"
作者: 77七    时间: 2024-7-4 18:38

文件路径是手打的还是拖放的或者是右键复制的路径?是不是需要注意下引号和空格的问题?
  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 文件链接,文件名称,全路径
复制代码

作者: wulifaker    时间: 2024-7-4 22:44

回复 7# 77七


    路径是我复制的,如果是输出的要注意下引号和空格的




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