MiracleJobLogo
エンジニアのエンジニアによるエンジニアのためのサイト
News 07/19 おすすめ情報に 『 【資格取得者速報】 Aさん 「 Microsoft Security, Compliance, and Identity Fundamentals」 』 を追加しました。
会員登録するとキャリア診断やサイトに参加することができます。
あなたにおすすめな技術情報、資格、仕事などをお知らせします。

無料会員登録


パスワードを忘れた場合
LINEで送る
MiracleJobBanaLeft1
MiracleJobBanaLeft2


バッチ作成(エラーメッセージをテキストに出力)
profile-img
投稿者: thirumaさん
投稿日:2019/06/28 15:13
更新日:2019/06/28 15:15
like-img
分類
技術
テクノロジー
Windows系サーバ
キャリア
運用・保守 / テクニカルサポート / 構築 / 設計
投稿内容

今回は「if文」を用いたエラーメッセージの表示とエラー内容を別ファイルに出力させる

バッチについて紹介します。


今回は

if  文字列A==文字列B (真コマンド) echo (偽コマンド)

の構文を利用して2つの文字列の比較を行い、結果が「真」の場合・「偽」の場合の処理を

考えていきます。


・testAとtestBを比較し、同じ(結果が真)の場合、「error.txt」を作成し、そこに処理日付と正常メッセージを出力させる。

・testAとtestCを比較し、異なる場合(結果が偽)の場合、処理日付とエラーメッセージ、エラーの原因である項目(ここではtestAとtestCの内容)を「error.txt」に出力する。


@echo off


set testA=こんにちは

set testB=こんにちは

set testB=おはようございます

set time=%TIME:~0,8%

set now=%DATE% %time%

前提条件条件として、比較項目であるtestA testB testCの定義を

します。

次に、画面に表示する際や「error.txt」に出力する際の日時を定義します。

時間は hh:mm:ssという形で表示させます。

日付は%DATE%と上記で設定した%time%を並べて表示させる設定とします。


まずは、「testA」「testB」の比較処理について説明いたします。

if %testA%==%testB% (

echo %now% >>C:\Users\thiruma\Desktop\test2\error.txt
echo testAとtestBの比較の結果、処理は正常に行われました >>C:\Users\thiruma\Desktop\test2\error.txt 

「testA」「testB」の比較の結果、内容が同じだった場合、「error.txt」に「処理日付」と「testAとtestBの比較の結果、処理は正常に行われました」という正常メッセージを出力させます。


) else (
echo %now% >>C:\Users\thiruma\Desktop\test2\error.txt
echo testAとtestBは違う中身です。
echo testAとtestBは違う中身です。 >>C:\Users\thiruma\Desktop\test2\error.txt
echo testA=%testA% >>C:\Users\thiruma\Desktop\test2\error.txt
echo testB=%testB% >>C:\Users\thiruma\Desktop\test2\error.txt
)

また、「testA」と「testB」の比較結果が異なる場合、エラーメッセージを表示しつつ、同様のメッセージを処理日付、エラーの原因を表示します。(ここでは「testA」と「testB」の内容)

※「testA」と「testB」の内容は同様であることから、この処理は行われません。


続いて、「testA」と「testC」の比較処理について説明します。

if %testA%==%testC% (
echo %now% >>C:\Users\thiruma\Desktop\test2\error.txt
echo testAとtestCの比較の結果、処理は正常に行われました。 >>C:\Users\thiruma\Desktop\test2\error.txt 

「testA」「testC」の比較の結果、内容が同じだった場合、「error.txt」に「処理日付」と「testAとtestCの比較の結果、処理は正常に行われました」という正常メッセージを出力させます。

※「testA」と「testC」の内容は同様であることから、この処理は行われません。



) else (
echo %now% >>C:\Users\thiruma\Desktop\test2\error.txt
echo testAとtestCは中身が異なります。
echo testAとtestCは中身が異なります。>>C:\Users\thiruma\Desktop\test2\error.txt
echo testA=%testA% >>C:\Users\thiruma\Desktop\test2\error.txt
echo testC=%testC% >>C:\Users\thiruma\Desktop\test2\error.txt
)
また、「testA」と「testC」の比較結果が異なる場合、エラーメッセージを表示しつつ、同様のメッセージを処理日付、エラーの原因を表示します。(ここでは「testA」と「testC」の内容)


上記を踏まえ、バッチを作成し起動させたいと思います。

コマンドプロンプト上では、「testA」と「testC」の比較結果、内容が異なると判断されエラーが表示されました。


また、「test2」配下に「error.txt」が作成され、内容も

「」[]

「」

「testA」「testB」の内容を比較した結果、正常だった場合のメッセージと処理日時

「testA」「testC」の内容を比較した結果、異常だった場合のメッセージと処理日時、エラーの内容

を表示させることを確認できました。


今回はエラーメッセージを発生させ、テキストに出力するバッチについて紹介しました。

ご覧いただき、ありがとうございました。

コメント


MiracleJobBanaRight1
MiracleJobBanaRight2
MiracleJobBanaRight3