Anonim

高度な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:\ Documents and Settings \ Jason Faulkner \ Desktop C:\ Documents and Settings \ Jason Faulkner \ My Documents \ Important Files C:\ Scripts \ BackupScript.bat

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

バックアップの種類:

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

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

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

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

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

さらに苦労せずに、ここにあります:

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

@ECHO OFF REM BackupScript REMバージョン1.01、更新日:2008-05-21 REM By Jason Faulkner(articles132solutions.com)REMユーザーが構成したフォルダーおよびファイルの完全または増分バックアップを実行します。 REMの使用法--- REM> BackupScript SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION REM ---構成オプション---結果のバックアップアーカイブを保存するREMフォルダーの場所。 REMこのフォルダーが存在する必要があります。 最後に「\」を付けないでください。これは自動的に追加されます。 REMローカルパス、外部ドライブ文字(例:F :)、またはネットワークの場所(例:\\ server \ backups)を入力できます。SET BackupStorage = C:\ Backup REMどの曜日を実行しますか完全バックアップはオンですか? REM次のいずれかを入力します。Sun、Mon、Tue、Wed、Thu、Fri、Sat、* REM以下で指定された曜日以外の曜日は、増分バックアップを実行します。 REM「*」を入力すると、毎回完全バックアップが実行されます。 SET FullBackupDay = *コンピューター上の7-ZipがインストールされているREMの場所。 REMデフォルトは、Program Filesディレクトリのフォルダー「7-Zip」にあります。 SET InstallLocationOf7Zip =%ProgramFiles%\ 7-Zip REM + -------------------------------------- --------------------------------- + REM | あなたが何をしているのかわからない限り、ここで以下を変更しないでください。 | REM + ------------------------------------------------ ----------------------- + REM Usage変数。 SET exe7Zip =%InstallLocationOf7Zip%\ 7z.exe SET dirTempBackup =%TEMP%\ backup SET filBackupConfig = BackupConfig.txt REM検証。 存在しない場合%filBackupConfig%(ECHO設定ファイルが見つからない、見つからない:%filBackupConfig%GOTO End)存在しない場合 "%exe7Zip%"(ECHO 7-Zipは次の場所にインストールされていません:%dir7Zip%ECHO 7-ZipがインストールされていますGOTO End)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 = Incremental SET swXCopy = / s / d:%FileDate%)ECHOファイルのコピーを開始します。 存在しない場合 "%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コピー:!Current!SET Destination =%dirTempBackup%\!Current:〜0, 1!%%〜pnxA REMエントリがファイルかディレクトリかを判断します。 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バックアップファイルが存在する場合は、新しいファイルを優先して削除します。 EXIST "%BackupFileDestination%" DEL / f / q "%BackupFileDestination%" ECHOバックアップファイルを圧縮しています。 (新しいウィンドウ)優先度の低いプロセスで7-Zipを使用してREM圧縮ファイル。 START "Compressing Backup。DO NOT CLOSE" / belownormal / wait "%exe7Zip%" a -tzip -r -mx5 "%BackupFileDestination%" "%dirTempBackup%\" ECHOバックアップファイルの圧縮を完了しました。 エコー。 ECHOクリーンアップ。 存在する場合 "%dirTempBackup%" RMDIR / s / q "%dirTempBackup%" ECHO。 :エコーの終了。 エコー。 エンドローカル

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

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

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

これは、毎日コンピュータをバックアップするために使用するスクリプトと同じものです(もちろん、いくつかの修正を加えています)。 それがあなたのお役に立てば幸いです。

楽しい!

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