如何获取目录中的内容列表,然后在列表中包装文本?

时间:2015-10-04 23:40:17

标签: powershell scripting automation

我的目标很简单:我想在我的网站上列出数百本电子书。只需单击您单击的单词,它就会在新选项卡中打开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”扩展的标签之间再次打印)?

2 个答案:

答案 0 :(得分:0)

这是一半的难题,解决另一半比仅仅告诉答案更有价值。

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

感谢https://stackoverflow.com/a/4952679/4317867 @mjolinor

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

答案 1 :(得分:0)

在powershell中,输入

cd "directory/to/file" 

然后输入

ls $search_dir

ALT +左键单击以选择&#39;名称&#39;部分。将其复制到文本文件并将其命名为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>

希望这有助于将来。