データをバックアップするためのWindowsバッチスクリプト

高度なMacおよびWindowsコンピューターで成長したコンピューターユーザーは、それを認識していない可能性がありますが、かつては、すべてのパーソナルコンピューターがコマンドラインインターフェイスを使用して制御されていました。はい、Windowsマシンのその不格好なコマンドボックスは、文字通り、ほとんどの人がコンピューターと対話する唯一の方法でした。コマンドラインインターフェイスは、一般的なタスクを実行するために使用されるオペレーティングシステムコマンドのコレクションである「スクリプト」と呼ばれる小さなプログラムに大きく依存していました。

今日のPCのグラフィカルユーザーインターフェイスは、古いコマンドラインよりも光年洗練されていて使いやすいものですが、コンピューターを制御する古い方法にはまだ用途があります。コマンドラインスクリプトの最も一般的で適切なアプリケーションの1つは、データのバックアップです。コマンドラインスクリプトは、人間の介入なしにいつでも実行できるように自動化でき、制限はほとんどありません。何よりも、これらはWindowsオペレーティングシステムの組み込み部分です。

なぜコマンドラインスクリプトなのか?

商用バックアッププログラムと無料バックアッププログラムの両方があるのに、なぜコマンドラインスクリプトを使用するのですか?コマンドラインスクリプトには、いくつかの独自の利点があります。それらのいくつかを次に示します。

  • ネイティブコマンド :データを作成するプログラムを通じて利用できる機能を使用するよりも、データをバックアップするためのより良い方法は何ですか?これが単純なファイルコピーコマンドによるオペレーティングシステム自体であろうと、復元可能なバイナリファイルを生成するデータベースコマンドであろうと、ソースプログラムはそれ自体をバックアップする方法を最もよく知っています。
  • 究極のコントロール :コマンドラインスクリプトは簡単なステップバイステップの手順に従うため、何が起こっているかを正確に把握し、動作を簡単に変更できます。
  • 速い :すべてがネイティブコマンドであるため、解釈の対象となるものはありません。ここでも、プログラム自体が提供するコマンドを使用しているため、オーバーヘッドが最小限に抑えられます。
  • パワフル :コマンドラインスクリプトでは実行できないバックアップタスクをまだ見ていません…そして、いくつかのファンキーなことをしました。本当にユニークなニーズがある場合は、調査と試行錯誤が必要になる場合がありますが、通常は、使用しているスクリプト言語の組み込み関数と機能で十分です。
  • 無料で柔軟 :明らかに、コマンドラインスクリプトは(開発にかかる時間以外は)何も費用がかからないため、時間や費用をほとんどまたはまったくかけずに、スクリプトを任意の数のマシンやシステムにコピーできます。これを、複数のサーバーやデスクトップマシンでバックアップソフトウェアのライセンスを購入するコストと比較してください。

バックアップバッチスクリプトの概要

ほとんどの人はコマンドラインスクリプトの使い方を学んだことがなく、それは「ブラックアート」のようなものと考えられています。しかし、実際には学ぶのはとても簡単なことです。コマンドラインの威力を示すために、重要なデータのバックアップに使用できる簡単なWindowsバッチスクリプトを提供します。この構成可能でカスタマイズ可能なスクリプトには、Windowsバッチスクリプト言語の知識(または学習意欲)は必要ありませんが、Windowsバッチスクリプトについて詳しく知りたい場合は、このスクリプトが出発点として適しています。 。

バックアップスクリプトの機能:

  1. 別の構成テキストファイル(以下を参照)で指定したファイルとフォルダーの完全または毎日の増分(定義については以下を参照)バックアップを作成します。
    • フォルダに名前を付けると、そのフォルダとすべてのサブフォルダがバックアップされます。
    • ファイルに名前を付けると、そのファイルだけがバックアップされます。
  2. バックアップされたファイルを圧縮(zip)します。バックアップするすべてのファイルがコピーされた後、スペースを節約するために圧縮されます。これを機能させるには、7-Zipをシステムにインストールする必要があります。
  3. 圧縮ファイルに日付を付け、保存場所に移動します。バックアップファイルが圧縮された後、結果のアーカイブには現在の日付に応じたファイル名が付けられ、外部ドライブやネットワークの場所など、構成された保存場所に移動されます。
  4. その後クリーンアップします。すべてのタスクが完了すると、バッチスクリプトは作成したすべての一時ファイルをクリーンアップします。

要件:

Windows 2000 / XP / 2003 / Vista以降

7-Zip(無料)

構成ファイル:

構成ファイルは、バックアップするファイルとフォルダーを含む単純なテキストファイルであり、1行に1つのバックアップ項目を入力します。このファイル しなければならない 「BackupConfig.txt」という名前で、バックアップスクリプトと同じフォルダにあります。 BackupConfig.txtファイルの例を次に示します(最初の行の「#」文字は、その行がコメントであることを示します。スクリプトの実行時には、コメントは常に無視されます)。

#ファイル名とフォルダ名を1行に1つずつ入力します。

C:ドキュメントと設定Jason FaulknerDesktop C:ドキュメントと設定JasonFaulknerMy Documents重要なファイルC:ScriptsBackupScript.bat

上記の例では、WindowsユーザーのJason Faulknerのデスクトップ(およびデスクトップ上のすべてのフォルダー)、マイドキュメント内の「ImportantFiles」というフォルダー(および「ImportantFiles」内のすべてのフォルダー)、およびファイル「BackupScript.bat」をバックアップします。 C:Scriptsディレクトリ。

バックアップの種類:

  • 完全バックアップ:すべてのファイルとフォルダー(サブフォルダーを含む)の完全コピーがバックアップに含まれます。
  • 増分バックアップ:フォルダーが提供されている場合、で作成または変更されたファイルのみ 現在の日付 それは

    バックアップしました。ファイルが提供されると、いつ変更されたかに関係なく、常にバックアップされます。

データバックアップWindowsバッチスクリプト

このスクリプトは非常に基本的なものであることを強調したいと思います。単純なファイルコピーを利用してバックアップを作成するだけだからです。設定できる構成オプションがいくつかあります。

  • 結果の圧縮バックアップファイルが保存されるバックアップ保存場所。
  • 完全バックアップが実行される曜日(他の日は増分バックアップが実行されます)。
  • 7-Zipがコンピューターにインストールされている場所。スクリプトは、デフォルトの場所を検索するように自動的に設定されます。

提案や機能のリクエストがある場合は、以下にコメントしてください。読者の入力に基づいて更新されたスクリプトを取り上げた、この投稿のフォローアップ記事を作成したいと思います。このスクリプトを「使用」する方法、またはスケジュールされたタスクを設定する方法についての説明が必要な場合は、スクリプトソースの下のリンクを参照してください。

さらに苦労することなく、ここにあります:

ノート:引用符が下に正しく表示されないため(その結果、スクリプトが台無しになる可能性があります)、コピー元の正確なソースを取得するために使用できるプレーンテキストリンクをスクリプトの下に含めました。

@ECHO OFF REM BackupScript REMバージョン1.01、更新日:2008-05-21 REM By Jason Faulkner(articles [-at-] 132solutions.com)REMユーザーが構成したフォルダーとファイルの完全バックアップまたは増分バックアップを実行します。 REMの使用法--- REM> BackupScript SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION REM ---構成オプション--- REM結果のバックアップアーカイブを保存するフォルダーの場所。 REMこのフォルダは存在している必要があります。末尾に ''を付けないでください。これは自動的に追加されます。 REMローカルパス、外付けドライブ文字(例:F :)、またはネットワークの場所(例:\ serverbackups)を入力できます。SETBackupStorage= C:Backup REM完全バックアップを実行する曜日を教えてください。 REM次のいずれかを入力します:日、月、火、水、木、金、土、* REM以下に指定された曜日以外の曜日は、増分バックアップを実行します。 REM「*」を入力すると、毎回完全バックアップが実行されます。 SET FullBackupDay = * 7-ZipがコンピューターにインストールされているREMの場所。 REMデフォルトは、ProgramFilesディレクトリの「7-Zip」フォルダにあります。 SET InstallLocationOf7Zip =%ProgramFiles%7-Zip REM + --------------------------------------- -------------------------------- + REM |何をしているのかわからない限り、ここでは何も変更しないでください。 | REM + ------------------------------------------------ ----------------------- + REM使用変数。 SET exe7Zip =%InstallLocationOf7Zip%7z.exe SET dirTempBackup =%TEMP%backup SET filBackupConfig = BackupConfig.txtREM検証。 IF NOT EXIST%filBackupConfig%(ECHO構成ファイルが見つかりません、欠落しています:%filBackupConfig%GOTO End)IF NOT EXIST "%exe7Zip%"(ECHO 7-Zipが次の場所にインストールされていません:%dir7Zip%ECHOディレクトリを更新してください7-Zipがインストールされています。GOTOEnd)REMバックアップ変数。 FOR / f "tokens = 1,2,3,4 delims = /" %% a IN( 'date / t')DO(SET DayOfWeek = %% a SET NowDate = %% d-%% b-%% c SET FileDate = %% b-%% c-%% d)IF {%FullBackupDay%} == {*} SET FullBackupDay =%DayOfWeek%IF / i {%FullBackupDay%} == {%DayOfWeek%}(SET txtBackup = Full SET swXCopy = / e)ELSE(SET txtBackup =インクリメンタルSETswXCopy = / s / d:%FileDate%)ECHOファイルのコピーを開始します。 IF NOT EXIST "%dirTempBackup%" MKDIR "%dirTempBackup%" FOR / f "skip = 1 tokens = *" %% A IN(%filBackupConfig%)DO(SET Current = %% 〜A IF NOT EXIST "!Current! "(ECHO ERROR!not found:!Current!)ELSE(ECHO Copying:!Current!SET Destination =%dirTempBackup%!Current:〜0,1!%% 〜pnxAREMエントリがファイルかディレクトリかを判別します。IF "%% 〜xA" == ""(REMディレクトリ。XCOPY "!Current!" "!Destination!" / v / c / i / g / h / q / r / y%swXCopy%)ELSE(REMファイル。 COPY / v / y "!Current!" "!Destination!")))ECHOファイルのコピーが完了しました。エコー。 SET BackupFileDestination =%BackupStorage%Backup_%FileDate%_%txtBackup%.zip REMバックアップファイルが存在する場合は、新しいファイルを優先して削除します。 IF EXIST "%BackupFileDestination%" DEL / f / q "%BackupFileDestination%" ECHOバックアップされたファイルを圧縮します。 (新しいウィンドウ)REM優先度の低いプロセスで7-Zipを使用してファイルを圧縮します。 START "バックアップの圧縮。閉じないでください" / belownormal / wait "%exe7Zip%" a -tzip -r -mx5 "%BackupFileDestination%" "%dirTempBackup%" ECHOバックアップされたファイルの圧縮が完了しました。エコー。 ECHOクリーンアップ。 IF EXIST "%dirTempBackup%" RMDIR / s / q "%dirTempBackup%" ECHO。 :EndECHO終了しました。エコー。 ENDLOCAL

プレーンテキストのソースはここから入手できます:backup

このスクリプトの実装を開始する際にサポートが必要な場合は、次のリンクを参考にしてください。

  • バッチファイルの作成方法
  • Windowsのスケジュールされたタスクを作成する方法

これは、私が毎日コンピューターをバックアップするために使用するのと同じスクリプトです(もちろん、いくつかの変更を加えています)ので、非常にうまく機能することがわかります。お役に立てば幸いです。

楽しみ!

最近の投稿

$config[zx-auto] not found$config[zx-overlay] not found