【发布时间】:2016-10-05 17:19:45
【问题描述】:
我正在尝试生成带有文件索引的 html 页面。这种方法可以无缝运行:
$htmlout = Get-ChildItem -Path "$SearchPath" -Filter "$fileType" -Recurse |
Select @{Name="Link";Expression={("<a rel=" + $_.FullName + " href=file:///" + $_.FullName + ">$_</a>")}}
“链接”列只有文件名(即 test.txt),并在单击时显示文件内容。然后我们有一个额外的要求来跳过旧文件。脚本现在是:
$htmlout = Get-ChildItem -Path "$SearchPath" -Recurse -include ("$fileType") | Where-Object {$_.LastWriteTime -ge "01/01/2014"} |` Select @{Name="Link";Expression={("<a rel=" + $_.FullName + " href=file:///" + $_.FullName + ">$_</a>")}}
它仍然有效,但链接列现在显示整个文件路径 + 文件名(即 \fileserver\folder1\folder2\test.txt)。 添加 >$_.Name
我试图了解为什么相同的 URL 行在过滤器更改后表现不同。
【问题讨论】:
-
我看不出它的行为有所不同;当我尝试时,您的第一个版本包括文件名的完整路径。而您的
Adding >$_.Name< does not work here.是因为您无法访问这样的字符串中的属性:请参阅:stackoverflow.com/questions/1145704/… -
这不是完全必要的,但我建议你不要随意将你的变量包裹在引号中,如果它们已经是字符串,或者当它们已经自包含时,将它们包裹在括号中。
标签: html powershell url filter