PowerShell ファイルやフォルダをバックアップする
大量のファイルやフォルダのコピーや同期を行うコマンドとしてrobocopyがあります。バックアップやデータ移行に使用すると非常に便利です。
多くの機能があるのでよく使うものだけメモとして残します。
よく使うサンプル
robocopy "バックアップ元" "バックアップ先" /MIR /R:3 /W:3 /NP /NDL /TEE /XJD /XJF /FFT /DCOPY:T
オプションの説明:
/MIR :バックアップ元とバックアップ先を同じ状態にします。
/R:n :ファイルコピーに失敗した場合に再度コピーを試す回数です。
デフォルトだと1,000,000回施行する
/W:n :再試行する時の待ち時間(秒)です。
/NP :バックアップ中の進行状況を表示しない。必ず指定しよう
/NDL :バックアップ結果として、ログファイルにファイルのみが出力されるようになります。
/TEE :バックアップの結果をコマンドプロンプトとログファイルの両方に出力します。
/XJD :フォルダの接合ポイントを除外します。必ず指定しよう
/XJF :ファイルの接合ポイントを除外します。必ず指定しよう
/FFT :バックアップ元と先のファイルの更新時間を比較する時、2秒の誤差を許します。必ず指定しよう
/DCOPY:T : フォルダのタイムスタンプもコピーする
そのほかのオプション
/L :テストオプション。実際にはコピーされずログのみ出力される
/LOG+:”ログファイルのパス” :指定したパスにファイル出力します。
/XF :除外するファイルを指定する「/XF *.tmp」と指定するとtmpファイルがコピーされなくなる
/XD : 除外するフォルダを指定する
/COMPRESS : コピー先へ転送するときに圧縮します。転送時間を短くできる可能性があります。
よく使うサンプル2
set logfile="C:\backuplog\%date:~0,4%-%date:~5,2%-%date:~8,2%_backup.log"
robocopy "\\192.168.1.1\営業データ" "\\192.168.10.1\backup\営業データ" /MIR /R:3 /W:3 /LOG+:"%logfile%" /NP /NDL /TEE /XJD /XJF /FFT /DCOPY:T /xd "trashbox"
説明:
1行目
set logfile ~
日付を名前にしたログファイルを設定しています
2行目
192.168.1.1から192.168.10.1へファイルをコピーします。
日付でログを出力して「trashbox」という名前のフォルダを無視しています。
#PowerShell #robocopy #バックアップ #フォルダ同期 #コマンドレット #Windows #プログラミング入門 #プログラミング学習