none
期間指定のrobocopy.batの作り方についてご教授いただけますでしょうか。 RRS feed

  • 質問

  • お世話になっております。

    先日下記URLにてファイルコピーについて質問させていただきました。

    https://social.technet.microsoft.com/Forums/ja-JP/7de01a31-1634-4b5e-a1f0-70af3999ca95/12501124571252312480125401239812487125401247912467125001254012?forum=win10itprogeneralJP

    回答いただいた/Sで実行しようと思ったのですが、カメラの録画が24/365行われているので録画データが保存されているフォルダはコピーができないようにしたいと考えています。

    /MAXAGE・/MINAGEで日付でコピー対象から除外ができるようなのでこれを使用して下記の内容でbatを作成しました。

    robocopy H:\コピー元 Z:\コピー先のネットワークドライブ /maxage:2 /minage:0 /r:0 /w:0

    実行は正常にできるのですがコピーに失敗しているような結果となってしまいます。

                    合計     コピー済み      スキップ       不一致        失敗    Extras
       ディレクトリ:         1         0         1         0         0        66
         ファイル:         0         0         0         0         0         0
          バイト:         0         0         0         0         0         0

    条件としては当日の録画データを翌日にコピーを行いコピー対象外は前日と翌日のフォルダを対象外としたいと考えています。カメラの仕様上翌日になれば翌日の日付のフォルダが作成され動画ファイルが保存されるようになっています。

    どなたかご教授いただけますでしょうか。

    宜しくお願い致します。

    2021年4月6日 2:42

回答

  • 神楽 さま 拝見しました。

    このケースの場合には、サブは無いので実際には不要ですが、そちらに合わせて /S を敢えて書いています。

    /R /W は省略しています。

    尚、実際の運用時は、ファイルの更新日付に着目し、ファイル名の日付に惑わされません様。

    • 編集済み ShiroYuki_Mot 2021年4月6日 9:51 尚以下を追記
    • 回答としてマーク 神楽 2021年4月7日 2:24
    2021年4月6日 9:47

すべての返信

  • 神楽 さま よろしく。

    試して見ました。

    共通事項:RobocopyTest20210406.txt は メモ帳 notepad.exe で開いた状態。
    各ファイルは プログラムから 作成日付と更新日付を修正済み。
    各ファイルは サブ階層に置かず、対象フォルダに集約で試験実行。

    C:\WINDOWS\system32>dir H:\Temp\Test
     ドライブ H のボリューム ラベルは ------ です
     ボリューム シリアル番号は 0123-ABCD です
    
     H:\Temp\Test のディレクトリ
    
    2021/04/06  17:12    <DIR>          .
    2021/04/06  17:12    <DIR>          ..
    2021/04/04  17:00                24 RobocopyTest20210403.txt
    2021/04/05  17:00                24 RobocopyTest20210404.txt
    2021/04/06  17:00                24 RobocopyTest20210405.txt
    2021/04/06  17:12                24 RobocopyTest20210406.txt
                   4 個のファイル                  96 バイト
                   2 個のディレクトリ   7,202,832,384 バイトの空き領域
    
    C:\WINDOWS\system32>robocopy H:\Temp\Test H:\Temp\Test2 /S /MAXAGE:2 /MINAGE:1 /L
    
    -------------------------------------------------------------------------------
       ROBOCOPY     ::     Windows の堅牢性の高いファイル コピー
    -------------------------------------------------------------------------------
    
      開始: 2021年4月6日 17:22:51
       コピー元 : H:\Temp\Test\
         コピー先 : H:\Temp\Test2\
    
        ファイル: *.*
    
      オプション: *.* /L /S /DCOPY:DA /COPY:DAT /MAXAGE:2 /MINAGE:1 /R:1000000 /W:30
    
    ------------------------------------------------------------------------------
    
            新しいディレクトリ       4      H:\Temp\Test\
              新しいファイル                      24        RobocopyTest20210404.txt
    
    ------------------------------------------------------------------------------
    
                      合計     コピー済み      スキップ       不一致        失敗    Extras
       ディレクトリ:         1         1         0         0         0         0
         ファイル:         4         1         3         0         0         0
          バイト:        96        24        72         0         0         0
           時刻:   0:00:00   0:00:00                       0:00:00   0:00:00
       終了: 2021年4月6日 17:22:51

    尚、MinAge を 0 にすると、無視される仕様の様ですね。 n>0 。

    C:\WINDOWS\system32>robocopy H:\Temp\Test H:\Temp\Test2 /S /MAXAGE:2 /MINAGE:0 /L
    
    -------------------------------------------------------------------------------
       ROBOCOPY     ::     Windows の堅牢性の高いファイル コピー
    -------------------------------------------------------------------------------
    
      開始: 2021年4月6日 17:25:45
       コピー元 : H:\Temp\Test\
         コピー先 : H:\Temp\Test2\
    
        ファイル: *.*
    
      オプション: *.* /L /S /DCOPY:DA /COPY:DAT /MAXAGE:2 /R:1000000 /W:30
    
    ------------------------------------------------------------------------------
    
            新しいディレクトリ       4      H:\Temp\Test\
              新しいファイル                      24        RobocopyTest20210404.txt
              新しいファイル                      24        RobocopyTest20210405.txt
              新しいファイル                      24        RobocopyTest20210406.txt
    
    ------------------------------------------------------------------------------
    
                      合計     コピー済み      スキップ       不一致        失敗    Extras
       ディレクトリ:         1         1         0         0         0         0
         ファイル:         4         3         1         0         0         0
          バイト:        96        72        24         0         0         0
           時刻:   0:00:00   0:00:00                       0:00:00   0:00:00
       終了: 2021年4月6日 17:25:45

    また、MinAge MaxAge を共に 1 にすると、ファイルは全てスキップされます。

    • 編集済み ShiroYuki_Mot 2021年4月6日 8:48 MinAge=MaxAge=1 ケースを追記
    2021年4月6日 8:35
  • ShiroYuki_Motさん

    前回に引き続きご返信ならびに検証ありがとうございます。

    MinAge:0だとMinAgeは無視されてしまうのですね・・・。/Sは付ける必要があるのでしょうか。ShiroYuki_Motさんのコマンドを確認したところ/Sの後に/maxage・/minageをつけていらっしゃるのですが、/maxage・/minageだけでは動かないのでしょうか。

    2021年4月6日 9:40
  • 神楽 さま 拝見しました。

    このケースの場合には、サブは無いので実際には不要ですが、そちらに合わせて /S を敢えて書いています。

    /R /W は省略しています。

    尚、実際の運用時は、ファイルの更新日付に着目し、ファイル名の日付に惑わされません様。

    • 編集済み ShiroYuki_Mot 2021年4月6日 9:51 尚以下を追記
    • 回答としてマーク 神楽 2021年4月7日 2:24
    2021年4月6日 9:47
  • ShiroYuki_Motさん

    ご返信ありがとうございます。

    再度自分のほうで確認したところコピー元の下層にフォルダがあった為、/sをつけて実行したところ /maxage:2のフォルダがコピーされることを確認しました。

    なので、/sをつけて再度条件の検証をしてみようと思います。

    いろいろとご教授いただきありがとうございました。

    2021年4月7日 2:22