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 に答える