次のPowerShellスクリプトを使用して、数千のHTMLファイルを開き、Word文書を「名前を付けて保存」します。
param([string]$htmpath,[string]$docpath = $docpath)
$srcfiles = Get-ChildItem $htmPath -filter "*.htm*"
$saveFormat = [Enum]::Parse([Microsoft.Office.Interop.Word.WdSaveFormat], "wdFormatDocument");
$word = new-object -comobject word.application
$word.Visible = $False
function saveas-document
{
$opendoc = $word.documents.open($doc.FullName);
$opendoc.saveas([ref]"$docpath\$doc.FullName.doc", [ref]$saveFormat);
$opendoc.close();
}
ForEach ($doc in $srcfiles)
{
Write-Host "Processing :" $doc.FullName
saveas-document
$doc = $null
}
$word.quit();
コンテンツは見事に変換されますが、私のファイル名は期待どおりではありません。
$opendoc.saveas([ref]"$docpath\$doc.FullName.doc", [ref]$saveFormat);
の代わりにfoo.htm
として保存されます。foo.htm.FullName.doc
foo.doc
$opendoc.saveas([ref]"$docpath\$doc.BaseName.doc", [ref]$saveFormat);
収量foo.htm.BaseName.doc
とSave As...
の連結に等しいファイル名変数を設定するにはどうすればよいですか?BaseName
.doc