更新日:2019/09/26
C:\temp>robocopy c:\temp\from c:\temp\to /E
-------------------------------------------------------------------------------
ROBOCOPY :: Windows の堅牢性の高いファイル コピー
-------------------------------------------------------------------------------
<中略>
C:\temp>echo %ERRORLEVEL%
0
次はPowershellでの取得方法を紹介します。
サンプルコード集
以下は Windows 10 環境におけるサンプルコードと実行結果です。以下はrobocopy コマンドに成功しているため、戻り値である $LASTEXITCODEに 0 が入っています。
サンプルコード:
robocopy c:\temp\from c:\temp\to /E
$ret = $LASTEXITCODE
write ("戻り値: ${ret}")
if ($ret -ne 0)
{
write-host "robocopy でエラーが発生しました。"
}
実行結果:
-------------------------------------------------------------------------------
ROBOCOPY :: Windows の堅牢性の高いファイル コピー
-------------------------------------------------------------------------------
開始: 2019年9月26日 23:30:38
コピー元 : c:\temp\from\
コピー先 : c:\temp\to\
ファイル: *.*
オプション: *.* /S /E /DCOPY:DA /COPY:DAT /R:1000000 /W:30
------------------------------------------------------------------------------
0 c:\temp\from\
------------------------------------------------------------------------------
合計 コピー済み スキップ 不一致 失敗 Extras
ディレクトリ: 1 0 1 0 0 0
ファイル: 0 0 0 0 0 0
バイト: 0 0 0 0 0 0
時刻: 0:00:00 0:00:00 0:00:00 0:00:00
終了: 2019年9月26日 23:30:38
戻り値: 0
以下は存在しないフォルダ(c:\NONEXIST\from)を指定しているためエラーが発生しています。
エラー番号は 16 です。
$LASTEXITCODEが 0 でないためエラーを出力しています。
サンプルコード:
robocopy c:\NONEXIST\from c:\temp\to /E
$ret = $LASTEXITCODE
write ("戻り値: ${ret}")
if ($ret -ne 0)
{
write-host "robocopy でエラーが発生しました。"
}
実行結果:
-------------------------------------------------------------------------------
ROBOCOPY :: Windows の堅牢性の高いファイル コピー
-------------------------------------------------------------------------------
開始: 2019年9月26日 23:40:29
コピー元 : c:\NONEXIST\from\
コピー先 : c:\temp\to\
ファイル: *.*
オプション: *.* /S /E /DCOPY:DA /COPY:DAT /R:1000000 /W:30
------------------------------------------------------------------------------
2019/09/26 23:40:29 エラー 3 (0x00000003) コピー元ディレクトリにアクセスしています c:\NONEXIST\from\
指定されたパスが見つかりません。
戻り値: 16
robocopy でエラーが発生しました。
【おまけ】
フォルダを丸ごとコピーする場合のよく使う オプションを紹介します。
robocopy /E /S /SEC /V /R:5 /W:30 /NP /MAXAGE:99 c:\temp\from c:\temp\to
/E ・・・サブディレクトリもコピー
/S ・・・空のフォルダもコピー
/V ・・・スキップ時に詳細を出力
/SEC ・・・セキュリティ情報もコピー
/R:n ・・・失敗時のリトライ回数
/W:s ・・・リトライまでのwait秒数
/NP ・・・詳細を表示しない
/MAXAGE・・・指定した日にち以内のファイルを対象
サンプルコード:
robocopy /E /S /SEC /V /R:5 /W:30 /NP /MAXAGE:99 c:\temp\from c:\temp\to
実行結果:
-------------------------------------------------------------------------------
ROBOCOPY :: Windows の堅牢性の高いファイル コピー
-------------------------------------------------------------------------------
開始: 2019年9月26日 23:49:36
コピー元 : c:\temp\from\
コピー先 : c:\temp\to\
ファイル: *.*
オプション: *.* /V /S /DCOPY:DA /COPY:DATS /NP /IM /MAXAGE:99 /R:5 /W:30
------------------------------------------------------------------------------
0 c:\temp\from\
------------------------------------------------------------------------------
合計 コピー済み スキップ 不一致 失敗 Extras
ディレクトリ: 1 0 1 0 0 0
ファイル: 0 0 0 0 0 0
バイト: 0 0 0 0 0 0
時刻: 0:00:00 0:00:00 0:00:00 0:00:00
終了: 2019年9月26日 23:49:36
[Powershell FAQ トップへ]
[FAQ CENTER トップ]
本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。) Copyright(c) tooljp.com 2007-2018