【发布时间】:2016-12-01 23:57:25
【问题描述】:
基本上,我正在从事一个大型项目,其中包含一些新概念来挑战自己。我正计划通过 HTML 从我的文档所在的文件夹中映射出我的计算机目录和文件夹。好吧,事实证明(并不奇怪),我需要一些其他文件来进行映射,以便 HTML 文件可以将其可视化。我被困住了。基本上,我决定创建一个如下所示的批处理脚本:
echo off
cd %cd%
for /d %%a in (*) do dir /ad /on /s /b "%%a" >> get_dirs.txt
这是我在https://grumpybear.wordpress.com/2011/05/22/batch-files-to-list-all-files-and-directories-in-a-folder/ 发现的一个简单但很酷的脚本,它很好地描述了脚本的组件。输出文本文件如下所示:
C:\Users\Jason\Desktop\G3\DCIM\CardboardCamera
C:\Users\Jason\Desktop\G3\DCIM\Facebook
C:\Users\Jason\Desktop\G3\DCIM\Flickr
C:\Users\Jason\Desktop\G3\DCIM\.thumbnails\otg
C:\Users\Jason\Desktop\G3\Download\Adobe Acrobat
C:\Users\Jason\Desktop\G3\Download\Adobe Reader
C:\Users\Jason\Desktop\G3\Download\TrimbleMapBundles
C:\Users\Jason\Desktop\G3\Pictures\Facebook
C:\Users\Jason\Desktop\G3\Pictures\Instagram
C:\Users\Jason\Desktop\G3\Pictures\Messenger
C:\Users\Jason\Desktop\G3\Pictures\Old Phone
这是脚本放置在桌面上的时间。当我遇到一个严重的问题时,这几乎是我所能得到的。我需要让这些文件在 html 文档中显示为
<a href="file:///C:/Users/etc.">C:/Users/etc.</a>
所以我要编辑 echo 输出,愚蠢的我没有意识到它不是使用 echo 输出而是使用 dir 命令。因此,我尝试通过将输出作为输入发送到变量来使用 echo 编辑输出。我敢肯定在Batch - Command output to variable 和Save command output to variable 上有解决方案,但是这些页面上的答案有点模糊,对于经验较少的人来说有些混乱。另外,我不确定这是否重要,因为这些目录都作为一个完整的输出出现,而不是逐行(可逐行编辑)。我不确定是否可以将输出文件中的一行接一行变成单独的变量,这会很棒。如果我可以使文本文档的一行成为变量,然后是下一行,以此类推,那将很有帮助。我可以使用单独链接中的变量来格式化我的html链接,方法是通过以下原因产生不同的输出:
echo <a href="file:///%dir1%">%dir1%</a>
echo <a href="file:///%dir2%">%dir2%</a>
echo <a href="file:///%dir3%">%dir3%</a>
echo <a href="file:///%dir4%">%dir4%</a>
echo <a href="file:///%dir5%">%dir5%</a>
脚本可以通过读取 .txt 文件中有多少行来计算所需的变量数量,如下所示:How to count no of lines in text file and store the value into a variable using batch script?。 如果有人可以分享任何见解(我知道这是很多要求和很多信息),我将不胜感激。主要是逐行获取变量是主要部分。我想我也许可以得到一些其他的东西。谢谢。
--编辑:所以,我在想,有没有办法让批处理脚本逐行读取 .txt 文件?似乎有,但没有人真正分解过这种方法。这对我来说似乎有点模糊。
--编辑:我做了更多的思考和环顾四周,想出了这个代码:
@echo off
set /a file=file
cd %cd%
for /d %%b in (*) do dir /ad /on /s /b "%%b" >> get_dirs.txt
for /F "tokens=*" %%A in (get_dirs.txt) do set /a text=%%A
echo <a href="%file%:///%text%">%text%</a>
pause
这个脚本有问题,或者批处理脚本输出说“缺少操作员”很多次,然后关闭窗口。我不确定它有什么问题,但我确实认为我到了某个地方。我认为在回显我的 html 代码时可能与尖括号有关,认为它正在尝试输出或重定向回显。有谁知道我该如何解决这个问题(假设这是实际问题)?
【问题讨论】:
标签: html batch-file directory