标题: [文本处理] [已解决]求输出表格,整合某路径下所有文件名和路径,并有一个超链接,谢谢。 [打印本页]
作者: wulifaker 时间: 2024-7-4 10:32 标题: [已解决]求输出表格,整合某路径下所有文件名和路径,并有一个超链接,谢谢。
本帖最后由 wulifaker 于 2024-7-4 22:50 编辑
各位,刚接触批处理几天,只能看的懂一丢丢批处理命令。
现在想增加一点点的需求,具体如下,请帮忙看看:
1.遍历某路径下所有文件,
2.输出一个表格,包含文件名,和具体路径。
3.表格内有超链接,能通过单击链接打开文件。
现在的进度是,第3个需求差一点点。无法将所有内容排列成一行行输出。这个跟我循环没用好有关,也不清楚怎么才能循环出我想要的结果,希望有大佬能指点迷津一下,非常感谢。
而且我无法根据全部文件个数生成超链接个数,只能估个大概数字,例如100。
具体代码如下:
- @echo off
- setlocal enabledelayedexpansion
- set /p scan_dir=请输入你要扫描的文件路径:
- echo 你要扫描的文件路径为: %scan_dir%
- set /p save_file_name=请输入你要保存的文件名称(输入名称即可(不需要输入后缀,默认保存为.xlsx表格文件):
- echo 你要保存的文件名称为《%save_file_name%.xlsx》
- echo 文件链接 文件名称 全路径>>C:\Users\liufeng\Desktop\%save_file_name%.xlsx
- for /l %%i in (101,1,200) do echo =Hyperlink(C%%i,B%%i)>>C:\Users\liufeng\Desktop\%save_file_name%.xlsx
- for /R "%scan_dir%" %%I in (*) do (
- set file_name=%%~nI%%~xI
- set file_fullpath=%%~fI
- echo !file_name! !file_fullpath! >>C:\Users\liufeng\Desktop\%save_file_name%.xlsx
- )
- pause
复制代码
图片因为放不上来,所以上传了一个链接,请帮忙解惑,非常感谢。
链接: https://pan.baidu.com/s/1cr4a_ZP2TsLyMCkYJOXN8w?pwd=reuh 提取码: reuh 复制这段内容后打开百度网盘手机App,操作更方便哦
作者: buyiyang 时间: 2024-7-4 12:01
.xlsx不是纯文本文件,bat不方便编辑,最好输出为csv- @echo off
- setlocal enabledelayedexpansion
- set /p scan_dir=请输入你要扫描的文件路径:
- echo 你要扫描的文件路径为: %scan_dir%
- set /p save_file_name=请输入你要保存的文件名称(输入名称即可(不需要输入后缀,默认保存为.csv表格文件):
- echo 你要保存的文件名称为《%save_file_name%.csv》
- echo,文件链接,文件名称,全路径>C:\Users\liufeng\Desktop\%save_file_name%.csv
-
- (for /R "%scan_dir%" %%I in (*) do (
- set file_name=%%~nI%%~xI
- set file_fullpath=%%~fI
- echo,"=Hyperlink(""!file_fullpath!"",""!file_name!"")",!file_name!,!file_fullpath!
- )) >>C:\Users\liufeng\Desktop\%save_file_name%.csv
- 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
文件路径是手打的还是拖放的或者是右键复制的路径?是不是需要注意下引号和空格的问题?- set /p scan_dir=请输入你要扫描的文件路径:
- for /f "delims=" %%a in ("%scan_dir%") do (
- set scan_dir=%%~a
- )
- >>"C:\Users\liufeng\Desktop\%save_file_name%.csv" echo 文件链接,文件名称,全路径
复制代码
作者: wulifaker 时间: 2024-7-4 22:44
回复 7# 77七
路径是我复制的,如果是输出的要注意下引号和空格的
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |