如何获取目录中的内容列表,然后将文本环绕在列表周围?

How to get a list of contents in a directory, then wrap text around the list?

我的目标很简单:我想在我的网站上列出数百本电子书。只需单击单词,它就会在新选项卡中打开 pdf。我的问题在于,对于单个文件夹,手动执行此操作需要数天时间。在 powershell 中,我设法找到了一种方法来列出目录中的所有内容并将它们保存到文件中。

cd "directory\to\file"
ls $search_dir > text.txt

这将打印内容并将它们保存在文本文件中。我想要做的是将文字环绕在它周围。在 HTML 中,很明显你需要让你的标签像

<p><a href="path/to/file/file.pdf" target="_blank" class="downloadlink2">file</a></p>

这就是我希望我的打印列表的样子。那么我如何获得像这样环绕的内容列表(并在没有“.pdf”扩展名的标签之间再次打印)?

这是一半的谜题,解决另一半比简单地告诉答案更有价值。

这将读取 ( ) 中的文本文件并将字符串 Added 添加到每个行项目的末尾。

感谢 @mjolinor

(gc C:\Temp\z.txt) | ForEach-Object { $_ + " Added" } | Set-Content C:\Temp\z.txt

在 powershell 中,输入

cd "directory/to/file" 

然后输入

ls $search_dir

ALT+左键单击 select 'name' 部分的一个块。将其复制到一个文本文件,并将其命名为 filename.txt。然后使用以下行应用包装:

(gc C:\location\to\filename.txt) | ForEach-Object { "<p><a href=$([char]34)ebooks/Books/path/to/file/$_$([char]34) target=$([char]34)_blank$([char]34) class=$([char]34)downloadlink2$([char]34)>$_</a></p>" } | Set-Content C:\location\to\filename.txt

gc 抓取旁边目录下的文件。 ForEach-Object 告诉 powershell 运行 文档中每一行的大括号中的内容。 $([char]34) 是字符串内的引号,$_ 是 filename.txt 文件中的一行。 Set-Content 告诉 powershell 应用对 .txt 文件所做的更改。完成后,它看起来像这样:

<p><a href="C:\path\to\file.pdf" class="downloadlink2" target="_blank">file.pdf</a></p>

希望这对以后的人有所帮助。