Robocopy は非常に近づきましたが、コピー時にファイル名の変更ができません。次の条件に適した Windows の言語またはシステムを教えていただけませんか。
これは、数台の Win8/10 ラップトップと PC、および中央ネットワーク ドライブ (ルーターの USB ポートに接続された USB 外付けドライブ) を備えたホーム ネットワーク用のシンプルで基本的なバックアップ プランです。バックアップするファイルのほとんどは画像、ビデオ、または音楽であるため、すでに圧縮されているため、圧縮機能を備えた市販のバックアップ ソフトウェアを使用する意味はありません。また、ファイルを独自のバックアップ ファイル形式でカプセル化することは望んでいません。必要なのはコピーだけです。
コマンド シェルのバッチ ファイル、または VBScript などを想像しています。
理想的なシステムでは、コンピュータ上の選択したフォルダ (そのすべてのサブフォルダを含む) をネットワーク ドライブ上のそれぞれのフォルダにスケジュールされたバックアップをプログラムできます。最初に各フォルダの完全バックアップを行った後、システムは増分バックアップを実行します。これらの増分バックアップは、実際には新しいファイルのコピーを作成し、前回のバックアップ以降に変更されたファイルのインデックス ファイル名で新しいコピーを作成するだけです。それだけです。
前述したように、バッチ ファイル内の Robocopy は近いですが、ファイルの名前を変更できません。インデックス名を持つ新しいフォルダーを作成するのではなく、名前を変更したファイルを元のフォルダーにまとめて保存したいのです。
これを実現できるものを見つけるために、存在する可能性のあるすべての Windows コマンドとシステムを調査し、学習するのに何ヶ月も費やすこともできます。バックアップ ソフトウェアと Robocopy の調査にはすでに何日も費やしています。そのため、この掲示板が、これを実行するために必要なコマンドと機能を備えたものの正しい方向を示してくれることを期待していました。
ありがとう。
答え1
各項目の初期フルバックアップ後
これは robocopy にとって理想的な状況のように思えますが、あなたはこれにこだわっているようです:
増分バックアップは、実際には、新しいファイルのコピーを作成し、最後のバックアップ以降に変更されたファイルのインデックス付きファイル名で新しいコピーを作成するだけです。
この状況に対処するには、FC
ループを使用して、完全バックアップにファイルが存在するかどうかを比較し、存在する場合は個別にcopy
上書きして変更した名前を含めます。
したがって、これを設定するために、次のことを決定します。
- フルバックアップをどのくらいの頻度で実行するか、ソースフォルダに存在しないコンテンツを消去するかどうか、
- 手動ではない場合、増分バックアップをどのくらいの頻度で実行するか。
どちらの場合も、必要なバッチ ファイルを実行するために Windows でスケジュールされたタスクを設定することになります。どちらのスクリプトの複雑さもディレクトリ構造によって決まりますが、ほとんどの場合、増分バックアップ ロジックは次のようになります。
@echo off
set "dir=C:\Your\Directory"
set "bkp=N:\Your\Backup\Drive"
for %%A in (%dir%\*) do (
if exist "%bkp%\%%~nxA" (
fc "%%A" "%bkp%\%%~nxA"
if %ERRORLEVEL% EQU 1 (copy /y "%%A" "%bkp%\%%~nA MODIFIED%%~xA")
)
)
)
パラメーター拡張機能とさまざまなfor
オプションを使用して、ディレクトリの設定方法に基づいてループをカスタマイズできます。robocopy で何も削除したくない場合は、単に を使用します。robocopy "source" "destination" /e
また、robocopy をループして、for
ルート ディレクトリではなく個々のフォルダーを一度に実行することもできます。これにより、より詳細な可視性が必要な場合は、フォルダーごとにログ ファイルを生成できます。