よりスマートなWindowsバッチスクリプトに使用する5つのIFステートメント

よりスマートなWindowsバッチスクリプトに使用する5つのIFステートメント

Windowsバッチファイルで多くの作業を行う場合は、 IFステートメント スクリプトに柔軟性を追加するための非常に強力な方法を提供します。





この記事では、Windowsバッチファイルで使用できる5つの主要なタイプのIFステートメント、正しい構文の外観、およびそれぞれの現実的な例について学習します。





スクリプトを開始する準備ができたら、始めましょう!





1.値を比較する

バッチスクリプトで通常行う必要がある基本的なことの1つは、 2つの値を比較する 比較に応じて、異なる行動方針に従います。

たとえば、コンピュータのハードドライブのサイズを毎日チェックするバッチスクリプトを作成するとします。 3 GB未満の場合は、「ハードドライブの容量が少なすぎます」というメールレポートを取得する必要があります。



現在のハードドライブの空き容量を制限と比較するスクリプトを作成するには、次のバッチスクリプトを作成し、それを.batファイルとして保存します。

@echo off
set DriveLimit=300000000
for /f 'usebackq delims== tokens=2' %%x in (`wmic logicaldisk where 'DeviceID='C:'' get FreeSpace /format:value`) do set FreeSpace=%%x
Echo FreeSpace='%FreeSpace%'
Echo Limit='%DriveLimit%'
If %FreeSpace% GTR %DriveLimit% (
Echo There is enough free space.
) else (
Echo Not enough free space.
)

WMICは、WindowsのWindows Management Instrumentationコンポーネントであり、PC情報を取得するために使用できるさまざまなコマンドが付属しています。これは、このスクリプトの「wmic」コマンドが「logicaldisk」スペースを呼び出し、それをFreeSpace変数に配置する方法です。これで、「エコー不足の空き容量」という行をblat emailコマンドに置き換えて、アラートを送信できます。





最後に、このスクリプトを、毎日実行されるWindowsのスケジュールされたバッチジョブとして設定します。

これまでblatを使用したことがない場合は、blatの設定方法を示す記事があります。スケジュールされたジョブの設定に慣れていませんか? Windowsのスケジュールされたタスクを設定する方法に関する記事をお届けします。





2.文字列の比較

バッチジョブで実行できるもう1つの貴重なIF比較は、 文字列の比較

次の例では、バッチジョブを使用してWindowsのバージョンを確認する方法を示します。次に、これを予想されるWindowsバージョンと比較できます。

このスクリプトのいくつかの用途は、スクリプトをすばやく実行して現在のオペレーティングシステムが最新であることを確認する必要がある場合、またはアップグレードが必要かどうかを確認するためのIT監査です。

このスクリプトは次のようになります。

@echo off
for /f 'tokens=4-5 delims=. ' %%i in ('ver') do set VERSION=%%i.%%j
if '%version%' == '6.0' echo Windows Vista.
if '%version%' == '6.1' echo Windows 7
if '%version%' == '6.2' echo Windows 8
if '%version%' == '6.3' echo Windows 8.1
if '%version%' == '10.0' echo Windows 10.

このスクリプトの出力は次のようになります。

文字列をバッチで比較する機能は、可能性の全リストを開きます。あなたがすべてを探索する場合 WMICコマンドから取得できる情報 監視できるコンピューターに関する統計の数が表示されます。スケジュールされたバッチジョブを使用して、これらについて警告することができます。

3.ファイルが存在するかどうかを確認します

バッチファイルのIFステートメントが データファイルの存在を確認してください

多くの場合、バッチジョブは、特定のディレクトリにある新しい受信データファイルをチェックするようにスケジュールされている可能性のある単なる監視ツールです。

次に、バッチジョブは、そのファイルを処理可能な別の場所にコピーするか、ファイルをExcel出力に処理するWindowsスクリプトを開始します。

(私たちは過去にその方法について書いてきました Excelファイルへのデータを処理するためにWindowsスクリプトを使用する ;いくつかの良い背景の読書。)

バッチファイルを使用してファイルがディレクトリに存在するかどうかを確認するのはすばやく簡単です。そのスクリプトは次のようになります。

@echo off
if exist c: empdatafile.txt (
%WINDIR%SysWOW64cmd.exe
cscript LoadToExcel.vbs
) else (
rem file doesn't exist
)

IF EXISTSの比較は、多くのことに役立ちます。

たとえば、問題が発生したときに特定のフォルダに新しいエラーログを作成するシステムまたはアプリケーションを実行している場合、バッチジョブを頻繁に実行して、新しいエラーログが作成されたかどうかを監視し、アラートを送信できます。

4.コマンドが失敗したかどうかを確認します

IT担当者やプログラマーが使用するバッチファイルスクリプトの側面は次のとおりです。 エラーのチェック

重要なファイルのバックアップやファイルコピー操作の実行などの重要なITタスクを実行しているバッチジョブがたくさんあります。これらのバッチジョブが失敗すると、システムが失敗し、人々はそれに気づきます。

バッチジョブがコマンドに失敗したときにアラートを受け取る方がはるかに賢明です 人々は気づき始めます。このようにして、問題を事前に修正できます。

これを行うには、ほとんどのアプリケーションとコマンドが実行後に返される%errorlevel%変数を利用します。

あなたがしなければならないのは、IF%ERRORLEVEL%コマンドによってあなたのコマンドに従うことです。アプリケーションまたはコマンドがゼロを返した場合、すべて問題ありません。そうでない場合は、自分にメールを送信する必要があります。

@echo off
xcopy C:
omefolder E:ackupfolder
IF %ERRORLEVEL% NEQ 0

あなたは電子メールルートを取る必要はありません。毎朝チェックする可能性のあるエラーログをいつでも書き込むことができます。または、別のコマンドを使用してコピーを実行しようとする2番目のアプリケーションまたはコマンドを起動することもできます。実行したいアクションが何であれ、IF%ERRORLEVEL%で実行できます。

IFステートメントを使用して特定のエラーコードをチェックしたい場合は、Windowsがかなりの機能を提供します エラーコードの広範なリスト

5.欠落しているパラメータを確認します

最後の便利なIFステートメントは特定のコマンドではなく、スクリプトが 適切な入力パラメータを受け取りました

たとえば、入力フォルダーからチームが使用する共通のネットワークフォルダーにxcopyコマンドを実行するスクリプトを作成したとします。ユーザーは、スクリプト名の後に、個人のファイルパスを定義するパラメーターをたどる必要があります。

明らかに、パスを指定しないとスクリプトを適切に実行できないため、スクリプトの先頭にIFステートメントを配置して、両方のパラメーターが入力されていることを確認できます。

これがどのように見えるかです。

@echo off
IF [%1]==[] (
GOTO sub_message
) ELSE (
xcopy %1 E:ackupfolder
)
GOTO eof
:sub_message
echo You forgot to specify your path.
:eof

これまでバッチスクリプトでパラメーターを使用したことがない場合は、パーセント記号とそれに続く数字がパラメーター変数を表します。 %1は最初のパラメーター、%2は2番目のパラメーターというように続きます。

バッチジョブは強力です

多くの人は、順番に実行する必要がある単純なタスクにバッチジョブを使い始めます。 IFステートメントを使用すると、スクリプトにさらに多くのインテリジェンスを追加できます。

もちろん、本当にそれをワンランク上に上げたいのであれば、私たちのガイドでVBAを見てみることを検討するかもしれません 最初のVBAアプリケーションを作成する 、あるいはPythonプログラミングを学ぶことさえできます。

多くの場合、これらのようなより高度なプログラミング言語を使用したり、PowerShellの使用方法を学んだりして、現在バッチジョブを使用しているのと同じタスクの多くを実行できます。

共有 共有 つぶやき Eメール これらのWindowsファイルとフォルダを削除して、ディスク領域を解放します

Windowsコンピュータのディスク領域をクリアする必要がありますか?ディスクスペースを解放するために安全に削除できるWindowsファイルとフォルダは次のとおりです。

次を読む
関連トピック
  • ウィンドウズ
  • プログラミング
  • ウィンドウズ
著者について ライアン・デューブ(942件の記事が公開されました)

ライアンは電気工学の理学士号を取得しています。彼は自動化エンジニアリングで13年間、ITで5年間働いており、現在はアプリエンジニアです。 MakeUseOfの元編集長であり、データの視覚化に関する全国会議で講演され、全国のテレビやラジオで取り上げられました。

iPodからiTunesに無料で音楽を転送
RyanDubeのその他の作品

ニュースレターを購読する

ニュースレターに参加して、技術的なヒント、レビュー、無料の電子書籍、限定セールを入手してください。

購読するにはここをクリックしてください