コマンドプロンプトを使用して、新規ファイルをコピーしてバックアップするバッチプログラム

コマンドプロンプトを使用して、新規ファイルをコピーしてバックアップするバッチプログラムを作成することができます。以下は、新しいファイルが特定のディレクトリに追加された場合にそのファイルを別の場所にコピーし、バックアップするシンプルなバッチプログラムの例です。

@echo off
set sourceDir=C:SourceDirectory
set backupDir=C:BackupDirectory

:monitor
echo Waiting for new files...
timeout /t 5 /nobreak > nul

for %%f in ("%sourceDir%*.*") do (
    if not exist "%backupDir%%%~nxf" (
        echo Copying "%%~nxf" to backup folder...
        copy "%%f" "%backupDir%"
    )
)

goto monitor

このバッチプログラムの仕組みは以下の通りです:

  1. sourceDir変数とbackupDir変数を設定して、それぞれソースディレクトリとバックアップディレクトリのパスを指定します。
  2. :monitor ラベルの下で、新しいファイルが現れるのを待機します。timeoutコマンドは、新しいファイルが出現するのを待つための一時停止を提供します。
  3. forループを使用してソースディレクトリ内のファイルをイテレートし、バックアップディレクトリに同名のファイルが存在しない場合にファイルをコピーします。
  4. goto monitor を使用して、プログラムを「待機&監視」モードに戻します。新しいファイルの出現を継続的に監視し、新しいファイルがコピーされるたびにバックアップします。

このスクリプトは、新しいファイルがソースディレクトリに追加されるたびに、それをバックアップディレクトリにコピーします。ファイルが存在しない場合のみコピーが行われ、重複したファイルのコピーを防ぎます。バッチプログラムを実行すると、指定したディレクトリ内の新しいファイルをバックアップできます。