n-Archives.net

RoboSync環境変数を使ってスクリプト処理を制御する

目次

RoboSync環境変数が使えるようになりました

RoboSync 1.3.11 から、RoboSync環境変数が使えるようになりました。

RoboSyncから Robocopyを実行した際(コピー項目の実行時、または、スクリプトの実行時)、RoboSync環境変数が設定されますので、これを使って、スクリプト処理を制御することができます。

 

RoboSync環境変数の設定内容

RoboSyncで、どのように実行されているかにより、変数に設定される内容が変わります。詳細は以下表をご覧ください。

RoboSync環境変数の設定
RoboSync
環境変数
RoboSyncから実行 バッチファイル
実行時
コピー項目
通常実行時
コピー項目
/L 実行時
コピー項目
/QUIT 実行時
スクリプト
実行時
ROBOSYNC_RUN NORMAL L QUIT SCRIPT (undefined)
ROBOSYNC_PREVIEW (undefined) L QUIT (undefined) (undefined)

 

RoboSync環境変数の使い方の例

例えば、フルバックアップを取るため、以下のようなスクリプトを作成していた場合。実行前スクリプトで、各世代のフォルダをローテーションさせているのですが、これは、プレビューモードで実行時(/L)、パラメータ評価モードで実行時(/QUIT)にも実行されてしまいます。プレビューモードのため、実際にはコピーは行われないのに、フォルダが勝手にローテーションしてしまいます。

参考記事:RoboSync設定事例:フルバックアップ3世代

 

このような場合、プレビューモードで実行時(/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" (
  
  【スクリプト実行時にのみ実行される】

) 

 

 



【関連記事・関連コンテンツ】

 

コメントをお送りください
お名前:
コメント:
コメントの公開: