たきるブログ

C#やOracleなどの情報を書いています。

【Windows】WindowsXPでrobocopyを利用する

あるシステムを動作させるファイルをサーバから一律コピーして持っていきたい場合に、今まではxcopyを利用している場面があったと思います。

が、xcopyは古い日付のファイルを持ってこないなど、同期という意味ではNGです。
Windows7だとrobocopyコマンドがあって、華麗に同期することができます。

が、WindowsXPも混ざった環境だと、そのままではrobocopyコマンドは使えません。
WindowsXPでもrobocopyを使えるようにしてしまいましょう。

手順は以下の通り。

  1. Windows Server 2003 Resource Kit Toolsからrktools.exeをダウンロードする。
  2. rktools.exeをWinRARなどの解凍ツールで解凍する。
  3. 解凍されたファイルにrktools.msiがあるので、msiexecコマンドを利用して解凍する。

    msiexec /a rktools.msi targetdir="C:\test" /qn

    ※targetdirは、解凍先ディレクトリを指定。

  4. 解凍先に「Program Files\Windows Resource Kits\Tools\robocopy.exe」があるので、必要な場所へコピーする。

これだけでOKです。

バッチからの使い方

robocopy "\\Server1\SharedDirectory\EXE" ".\EXE" /E /LOG:refresh_exe.log

細かい使い方は、Windows7だとrobocopy /?で日本語表示されますが、WindowsXProbocopyでは英語表記です。
てことで、Windows7環境がない方はこの辺を参考にしましょう。

大抵はバッチファイルからの実行になると思われる為、バッチファイルと同じ場所にrobocopy.exeを置いておけばいいです。
コマンドもWindows7と一緒なので、WindowsXPの場合は、などと切り分ける必要がありません。

どこか関係のないexeの機能の一部として実行されるならば、当然ですが、WindowsXPマシンではC:\Windows\System32内などPATHが通っているディレクトリにrobocopy.exeを保存する必要があります。
手間かもしれませんが、その手間も手間じゃないようにしてしまえばいいし、robocopyを採用しない手はないでしょう。