2013-07-04 34 views
0

我想掃描.htm文件的目錄,然後生成指向這些.htm文件的超鏈接,並將結果輸出到新的HTML文檔。達到此目的的最佳方法是什麼?如何生成超鏈接到Powershell目錄中的.htm文件?

到目前爲止,我有這樣的:

Get-ChildItem "C:\test1\*.htm" -Recurse -Force | 
    ConvertTo-Html -Fragment FullName, Name ` 
    -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:\$env:COMPUTERNAME-$(Get-Date -f dd-MM-yyyy-hh-mm-ss).htm" 

回答

1

你可以嘗試這樣的事:

Get-ChildItem "C:\*.htm" -Recurse -Force | 
    ConvertTo-Html -Fragment FullName, 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:\$env:COMPUTERNAME-$(Get-Date -f dd-MM-yyyy).htm" 
+0

我努力採用上面的代碼來讓它生成.htm文件。我試着以上版本的代碼:** Get-ChildItem「C:\ *。htm」-Recurse -Force | $ B =的ConvertTo HTML的-Fragment名稱,LastWriteTime' -PreContent '測試'' -PostContent '' | %{$ _ -replace '。*', '文件 '' -replace'​​(。*?)​​(。*?)​​(。*?)', '​​$2 $ 3' } $ b | Set-Content c:\「$ env:computername - $(get-date -f dd-MM-yyyy)」。htm ** – Gazel

+0

這不起作用:'... | $ b = ...'。你不能管道到一個賦值語句。我在我的答案中加入了「Set-Content」。 –

+0

感謝您的回覆。現在代碼生成.htm文件,但不會將超鏈接插入到掃描的文件中。我是Powershell的新手,所以不知道問題在哪裏。感謝你的幫助。 – Gazel

相關問題