ドキュメント リポジトリ用に、一連の 3500 の html ドキュメントを Word に変換中です。明確な理由もなく、変換のバック エンドで一部のハイパーリンクが壊れるという問題が発生しました。ファイル名とそれぞれに含まれるリンクのリストを生成して、パターンを見つけ、それに応じて変換プログラムを調整できるかどうかを確認したいと考えています。残念ながら、PowerShell とハイパーリンクを含む検索では、Powershell を使用してハイパーリンクを追加する方法に関する多くの項目が表示されますが、私のニーズに当てはまる状況はありませんでした。
このリンクとこのリンクをこのコードの出発点として使用します....
$word = New-Object -ComObject Word.Application
$document = $word.documents.open("C:\users\administrator\desktop\TEST.docx")
$document.Hyperlinks
([uri]"http://domain.com/This is a bad link").AbsoluteUri
$hyperlinks = @($document.Hyperlinks)
$hyperlinks | ForEach {
If ($_.Address -match "\s") {
$newURI = ([uri]$_.address).AbsoluteUri
Write-Verbose ("Updating {0} to {1}" -f $_.Address,$newURI) -Verbose
$_.address = $newURI
}
}
$document.save()
$word.quit()
私は自分のニーズを満たすものを作ろうとしてきました。ForEach
上記のスクリプトの結果を複製することはできますが、コマンドを使用してディレクトリ内のすべてのドキュメントを反復して実行することはできませんでした。すべてのリンクを html から doc に変更しようとしていますが、2 番目に次のコードを挿入します。
If ($.Address. -match ".\.doc") {
$newExt = ".doc" ;
$newURI = ([uri]$$_.address).BaseName.$newExt.
実行時に範囲外になり、コマンドの失敗エラーが発生します。このリンクは役に立ち、このリンクは VBA/VBScript に関する私の質問に答えますが、PowerShell には答えません。これに対するPowershellソリューションを持っている人はいますか?