RoboSync 1.3.11 から、RoboSync環境変数が使えるようになりました。
RoboSyncから Robocopyを実行した際(コピー項目の実行時、または、スクリプトの実行時)、RoboSync環境変数が設定されますので、これを使って、スクリプト処理を制御することができます。
RoboSyncで、どのように実行されているかにより、変数に設定される内容が変わります。詳細は以下表をご覧ください。
RoboSync 環境変数 |
RoboSyncから実行 | バッチファイル 実行時 |
|||
---|---|---|---|---|---|
コピー項目 通常実行時 |
コピー項目 /L 実行時 |
コピー項目 /QUIT 実行時 |
スクリプト 実行時 |
||
ROBOSYNC_RUN | NORMAL | L | QUIT | SCRIPT | (undefined) |
ROBOSYNC_PREVIEW | (undefined) | L | QUIT | (undefined) | (undefined) |
例えば、フルバックアップを取るため、以下のようなスクリプトを作成していた場合。実行前スクリプトで、各世代のフォルダをローテーションさせているのですが、これは、プレビューモードで実行時(/L)、パラメータ評価モードで実行時(/QUIT)にも実行されてしまいます。プレビューモードのため、実際にはコピーは行われないのに、フォルダが勝手にローテーションしてしまいます。
このような場合、プレビューモードで実行時(/L)、パラメータ評価モードで実行時(/QUIT)には実行されないよう、RoboSync環境変数で実行制御を行います。
if not defined ROBOSYNC_PREVIEW ( ... )
という IF文を使います。 閉じかっこを、実行後スクリプト欄に記述していることに注意してください。こうすることで、robocopyコマンドそのものを条件文の内側に入れることができます。(実際には、コマンドプレビュー欄で、スクロールしながら確認してください。)
また、もし、RoboSyncのコピー項目の通常実行時のみ、起動するようにするには以下のIF文を使います。
if "%ROBOSYNC_RUN%"=="NORMAL" ( ... )
これにより、RoboSyncによるコピー項目通常実行時のみ処理が実行されます。
RoboSyncでrobocopyが実行される場合、RoboSync変数が定義されます。
RoboSync変数が定義されているかどうかを判定する場合は、defined を使って条件を判定します。
if not defined ROBOSYNC_PREVIEW ( 【/L, /QUIT 時には実行されない】 )
if defined ROBOSYNC_RUN ( 【RoboSyncで実行されている場合のみ実行される】 )
RoboSync変数の値で判定する場合は、以下のようにします。
if "%ROBOSYNC_RUN%"=="NORMAL" ( 【コピー項目実行時にのみ実行される】 )
if "%ROBOSYNC_RUN%"=="L" ( 【/L 実行時にのみ実行される】 )
if "%ROBOSYNC_RUN%"=="SCRIPT" ( 【スクリプト実行時にのみ実行される】 )
RoboSync: RobocopyのためのGUIツール
本サイトで公開しているツールです。ダウンロードはこのバナーをクリック!
Version 1.3.27 をリリースしました! (2021/1/1)
RobocopyをGUIから実行できるようにするツールです。コマンドプロンプトを表示することなく、GUI画面からほぼマウス操作だけで実行までできます。
Robocopyがバックグラウンドでそのまま実行されますので設定に迷うことはありません。
・ 複数のコピー項目の作成と管理。
・ スクリプトファイル(バッチファイル)出力が可能。スケジューラによるバックグラウンド処理にも使えます。
・ Robocopyによるコピー実行前に、実行プレビュー(/L)、パラメータのチェック(/QUIT)が可能。
・ Robocopyのパラメータ設定の簡易チェック、Robocopy実行前の簡易チェックを行います。
・ Robocopy実行前後で実行するスクリプトを定義可能。
・ Robocopy実行途中での中断、実行ログの履歴管理と保存が可能。
【関連記事・関連コンテンツ】