2016-11-03 7 views
0

拡張子が ".rtf"のディレクトリにすべてのファイルを入れようとしています。私は動作するスクリプトを持っていますが、foreachループ内にforeachループがあるので、しばらく時間がかかります。これを処理するより速い方法がありますか?このスクリプトの目的は、.rtfで終わるディレクトリ内のすべてのファイルを取得し、MSWordを使用してファイルを開き、 ".DOC"として保存することです。変換機能は正常に動作します。問題は、すべてのフォルダを検索する時間の長さです。Powershellは ".rtf"拡張子を持つファイルをフォルダとサブフォルダで検索します

​​

}

+0

$ subfoldersのインスタンス化では、すべてのディレクトリが再帰的にすべてのファイルを取得していないのですか?また、.rtfから.docに文書を変更するための言葉を開く理由はありますか? Rename-Itemコマンドを使用してファイル拡張子を変更することができます。 – jdwal

+0

私はこのようなものを試してみるでしょう。 get-childitem $ path -Recurse |名前をつけて保存して保存する理由は、以下のようになります。%{if($ _。Name - '' .rtf '}){Rename-Item -Path $ _。FullName -NewName \ somepath \ newname}} – jdwal

+0

@jdwal wordがこれを行うと、実際にはファイルがRTFからDOCに変換されます。ファイル拡張子を変更しても実際にコードは変換されません。 –

答えて

0

私はパフォーマンスが各サブフォルダ内の単語・プロセスを呼び出すことにより、単語のインスタンスの多くを作成することによって失われると思います。常に単語のインスタンスを1つだけ使用してください。 $Word=New-Object -ComObject WORD.APPLICATION行を関数の先頭に移動し、最後に$word.quit()行を移動してください。

関連する問題