[FAQ CENTER トップ]
[Powershell FAQ トップへ]



【Powershell】start-transcript が robocopy で結果が出力されない場合の対処



更新日:2022/03/17


start-transcript はWindows Powershell 環境でstart-transcript 〜 stop-transcript の間の出力をファイルに保存する便利な機能です。
ログを自動で取得したい場合などに活用すると思います。コマンドなどの出力も自動で保存されていきます。

ただし 2022年3月現在で、robocopy の出力はstart-transcript 〜 stop-transcript で記録されないようです。
よってrobocopy の結果を保存するには代替案を採用する必要があります。

主に次の2通りの方法があります。

(1)結果を変数に代入し編集を出力する

(2)robocopy の /LOG オプションで別途フェイルに記録する



サンプルコード集

以下は Windows 10 環境におけるサンプルコードと実行結果です。

次の例では robocopy の結果を変数 output に代入し、その後この変数の中身を出力しています。結果は"c:\temp\PowershellCommandOutput.txt"に保存されます。


サンプルコード:


Start-Transcript c:\temp\PowershellCommandOutput.txt

$output = robocopy c:\temp\1 c:\temp\2

write-host $output

Stop-Transcript

実行結果:

トランスクリプトが開始されました。出力ファイル: c:\temp\PowershellCommandOutput.txt
------------------------------------------------------------------------------- ROBOCOPY :: Windows の堅牢性の高いファイル コピー ------------------------------------------------------------------------------- 開始: 2022年3月17日 20:32:43 コピー元 : c:\temp\1\ コピー先 : c:\temp\2\ ファイル: *.* オプション: *.* /DCOPY:DA /COPY:DAT /R:1000000 /W:30 ------------------------------------------------------------------------------ 0 c:\temp\1\ *EXTRA File 0 新しいビットマップ イメージ.bmp ------------------------------------------------------------------------------ 合計 コピー済み スキップ 不一致 失敗 Extras ディレクトリ: 1 0 1 0 0 0 ファイル: 0 0 0 0 0 1 バイト: 0 0 0 0 0 0 時刻: 0:00:00 0:00:00 0:00:00 0:00:00 終了: 2022年3月17日 20:32:43
トランスクリプトが停止されました。出力ファイル: C:\temp\PowershellCommandOutput.txt
以下省略





次の例では robocopy の /LOG オプションにより結果をファイルに保存しています。

サンプルコード:


robocopy c:\temp\1 c:\temp\2 /LOG:c:\temp\PowershellCommandOutput.txt

実行結果:


ログ ファイル: c:\temp\PowershellCommandOutput.txt








[Powershell FAQ トップへ]
[FAQ CENTER トップ]


本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。) Copyright(c) tooljp.com 2007-2018