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" (
  
  【スクリプト実行時にのみ実行される】

) 

 

 



Related Articles

 

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



管理者より個人的に返信をご希望の方は、コメント中に必ずメールアドレスを記載してください。記載がないと返信できませんのでご注意ください。

If you want personal response from the author, please do not forget to write your email address in the comment. Otherwise, the author can not reply.

投稿されたコメントは手動で処理されるため、記事として登録されるまで1日程度かかります。

Submitted comments will be processed manually. So, please understand it will take about a day to publish your comment.