1

我正在使用下面的代码来生成 Index.htm 页面。该代码运行良好,但我唯一不想在 Index.htm 页面中包含目录的超链接,因为它们没有用。Index.htm 应仅包含指向C:\inetpub\wwwroot内的 .htm 文件的超链接。关于如何达到这样的结果有什么建议吗?

$basedir = 'C:\inetpub\wwwroot'
$exp     = [regex]::Escape($basedir)
$server  = 'http://172.16.x.x'

Get-ChildItem $basedir -Force |
  select Name, LastWriteTime, 
    @{n="URL";e={$_.FullName -replace $exp, $server -replace '\\', '/'}} |
  ConvertTo-Html -Fragment URL, Name, LastWriteTime `
    -PreContent '<html><head><title>Test</title></head><body>' `
    -PostContent '</body></html>' |
  % { $_ -replace '<th>.*</th>','<th>Files</th>' `
         -replace '<td>(.*?)</td><td>(.*?)</td><td>(.*?)</td>',
                  '<td><a href="$1">$2</a> $3</td>'
  } | Set-Content "c:\inetpub\wwwroot\index.htm" 
4

2 回答 2

3

您可以通过这种方式过滤掉文件夹:

Get-ChildItem $basedir -Force | ? { -not $_.psiscontainer } | ... rest of your code ...

在 powershell V3 中

Get-ChildItem $basedir -Force -file | ... rest of your code ...
于 2013-07-11T09:13:35.850 回答
2

CB说的。另一个选项,因为你只想要.htm文件,将过滤这些文件Get-ChildItem

Get-ChildItem $basedir -Filter "*.htm" -Force | ...
于 2013-07-11T09:44:30.623 回答