繁体   English   中英

从在PowerShell中创建的HTML文件中打开文件

[英]Open a file from an HTML file created in PowerShell

我在PowerShell中有一个脚本,该脚本使用特定类型的文件列表(例如“ .txt”)创建HTML文件,并提供有关它们的一些基本信息。 现在,我想添加一项功能,可以单击该脚本创建的HTML页面中的文件名以将其打开。 至少有人可以提示如何做吗? 这是我收到的当前输出(尽管我模糊了文本): 我目前的输出是什么样子

这是我正在使用的脚本(来自alroc对这个问题的回答: 将通过get-ChildItem获得的多个对象写入HTML ):

$types=@("*.txt", "*.pdf")
$myfiles = @();
foreach($type in $types){
    $myFiles += Get-ChildItem C:\POWERSHELL -Filter $type -Recurse 
}

$myfiles | ConvertTo-Html -property fullname,lastwritetime,length | out-file c:\status23.html;

为了使指向该文件的可点击链接,您需要使用这种HTML标记:

<a href='file:///filename'>Display Text</a>`

但是,如果要更改HTML,则不能像在引用的脚本中那样使用ConvertTo-Html ,因为该cmdlet将转义您提供的任何输入,因此您需要自己创建HTML。 对于一个简单的表,它并不难,它使您可以更好地控制输出的外观。

尝试以下操作(除了添加HTML输出之外,我还压缩了您的代码):

$output = "<html>`n<table>`n<tr><th align='left'>Full Name</th><th align='left'>Last Write Time</th><th align='right'>Size (bytes)</th></tr>`n"
Get-ChildItem '*.txt','*.ps1' -Recurse | %{
  $output += "<tr><td><a href='file:///$($_.FullName)'>$($_.FullName)</a></td><td>$($_.LastWriteTime)</td><td align='right'>$($_.Length)</td></tr>`n"
}
$output += "</table>`n</html>"
$output | Out-File status23.html

一些注意事项:

  • 您不必担心HTML会对插值进行转义,因为您要包含的所有属性(FullName,LastWriteTime,Length)都不能包含任何需要在HTML中转义的字符。
  • `n并不是严格必需的,它们只是使生成的HTML文件更具可读性; 如果您忽略它们,则页面将呈现相同的效果。

首先,您需要将它们包装在带有文件路径的html href标记中。

如果他们有权访问该txt文件,并且使用的是浏览器查看html文件,则单击该文本文件将在浏览器中打开。

例:

$file="C:\test\to.txt"

"<HTML><a href=`"$file`">$file</a></HTML>" | Out-file "C:\test\test.html"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM