<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>errorlevel &#8211; スグブログ</title>
	<atom:link href="https://sugublog.org/tag/errorlevel/feed/" rel="self" type="application/rss+xml" />
	<link>https://sugublog.org</link>
	<description>ブログ運営について発信中</description>
	<lastBuildDate>Sun, 18 Feb 2024 10:22:38 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://sugublog.org/wp-content/uploads/2021/07/icon_20210703-min-150x150.png</url>
	<title>errorlevel &#8211; スグブログ</title>
	<link>https://sugublog.org</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【bat】errorlevelの使い方を教えます。条件分岐する事も可能！</title>
		<link>https://sugublog.org/bat-errorlevel/</link>
					<comments>https://sugublog.org/bat-errorlevel/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[suguru]]></dc:creator>
		<pubDate>Wed, 24 May 2023 12:32:52 +0000</pubDate>
				<category><![CDATA[bat]]></category>
		<category><![CDATA[errorlevel]]></category>
		<guid isPermaLink="false">https://sugublog.org/?p=5548</guid>

					<description><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/09/randam_0915-7-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>batファイルで「errorlevel」の基本的な使い方を教えます。 errorlevelにはどのような値が入っているのか、わからなくなってしまったりした経験はないでしょうか？ そのような人の為に分かりやすく実践を行って [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/09/randam_0915-7-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p><strong><span class="swl-inline-color has-swl-deep-01-color">batファイル</span></strong>で<strong><span class="swl-inline-color has-swl-deep-01-color">「errorlevel」</span></strong>の基本的な使い方を教えます。</p>



<p class="is-style-big_icon_hatena">errorlevelにはどのような値が入っているのか、わからなくなってしまったりした経験はないでしょうか？</p>



<p>そのような人の為に分かりやすく実践を行っています。</p>



<p>応用編として<strong><span class="swl-inline-color has-swl-deep-01-color">「if」と「errorlevel」</span></strong>を併用して<span class="swl-marker mark_orange">場合分け</span>をするやり方も実践を踏まえ教えます。</p>



<p>また操作者の選択で処理を<span class="swl-marker mark_orange">場合分け</span>する方法や<strong><span class="swl-inline-color has-swl-deep-01-color">「errorlevel」</span></strong>の値を<span class="swl-marker mark_orange">自由に変更する</span>やり方まで教えます。</p>



<p class="is-style-big_icon_check">それぞれで実演を踏まえていますし、出そうなエラーも例を出して紹介しているので必ずあなたのものに出来ます。</p>


<div class="p-blogParts post_content" data-partsID="5030">
<p>windowsのプロンプトで使用できるbatやpythonやphpを使用して、業務効率化やWebサイトを作成しております。javaやシェルスクリプトなど、様々なプログラミングを行った実績ありの筆者です。</p>
</div>


<p>あまり使うイメージのない「errorlevel」コマンドですが、この記事を読み終えた頃には「errorlevel」を使いこなして色々な事が出来るようになっています。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>この記事を読んでできる事</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li>batファイルでerrorlevelの基礎がわかる</li>



<li>errorlevelを使用して場合分けが出来る（操作者の選択にも対応）</li>



<li>errorlevelに自分の思う数字を入れる事が出来る</li>



<li>errorlevelを使用して出るエラーに対応できる</li>
</ul>
</div></div>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9330904718533231"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-9330904718533231"
     data-ad-slot="8455594968"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">batファイルでのerrorlevelの使い方</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="632" src="https://sugublog.org/wp-content/uploads/2021/11/programing_1122-3-1024x632.jpg" alt="エラーレベル" class="wp-image-4560" srcset="https://sugublog.org/wp-content/uploads/2021/11/programing_1122-3-1024x632.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/programing_1122-3-300x185.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/programing_1122-3-768x474.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/programing_1122-3.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p><strong><span class="swl-inline-color has-swl-deep-01-color">batファイル</span></strong>で<strong><span class="swl-inline-color has-swl-deep-01-color">「errorlevel」</span></strong>の基本的な使い方として、<span class="swl-marker mark_orange">前のコマンドが正常終了したか確認</span>する事が出来ます。</p>



<p>前のコマンドが成功したか失敗したかで、後の処理を変更したいといった場面はないでしょうか？</p>



<p>そんな時に使用できるのが「errorlevel」です。</p>



<p class="is-style-icon_book">つまりbatファイルで「errorlevel」を自分のモノにできれば、batファイルで出来る事が増え職場でも注目のエンジニアになれるかもしれません。</p>



<p>という事で、まずはbatファイルの「errorlevel」の基礎から学んで行きましょう！</p>



<p class="is-style-icon_announce">「errorlevel」の基本は以下の3つです。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>batファイルでのerrorlevel基礎</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li>直前のコマンドが成功した場合はerrorlevel変数に「0」を入れる</li>



<li>直前のコマンドが失敗した場合はerrorlevel変数に「1」を入れる</li>



<li>コマンド自体がない場合はerrorlevel変数に「9009」を入れる</li>
</ul>
</div></div>



<p class="is-style-dent_box">errorlevelのように変数を扱うとバッチファイルで様々な事が出来ます。具体的には下の記事にまとめています。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/08/script_0809-11-300x195.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/bat-hensu/">【bat】バッチファイルで変数や環境変数の使い方！エラー対処法あり</a>
						<span class="p-blogCard__excerpt">バッチファイルで変数や環境変数を設定するやり方を教えます。 その他にも変数に関わる事をご紹介します。 この記事でわかる事 変数を指定する時の注意点など 計算結果&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p class="is-style-icon_pen">その他の「errorlevel」の値は以下を参照ください。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>errorlevel</th><th>意味</th></tr></thead><tbody><tr><td>2</td><td>アクセス拒否</td></tr></tbody></table><figcaption class="wp-element-caption">基本以外のerrorlevel値の説明</figcaption></figure>



<p>では実践で「errorlevel」の基本の動きを見ていきます。</p>



<h2 class="wp-block-heading">batファイルでのerrorlevelチェック：成功判定</h2>



<p>まずはコマンドを<span class="swl-bg-color has-swl-deep-03-background-color">成功</span>させて「errorlevel」変数に「0」が入る事を確認していきます。</p>



<p>下のような成功判定のbatファイルを作成してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-file="batファイル" data-lang="Bash"><code>@echo off

echo ファイルがなければ作成、あってもなくてもコマンドは成功するので：エラーレベル0
if not exist test1.txt (
echo テキストの中身 &gt; test1.txt
)
echo エラーレベル＝%errorlevel%
pause</code></pre></div>



<h3 class="wp-block-heading">errorlevelチェック：成功判定のbatファイル説明</h3>



<p>1行目の「@echo off」はbatファイルに記述したコマンドを表示させないコードです。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-8-300x229.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/bat-echo-off/">【bat基礎】バッチで「@echo off」の意味や効果とは？</a>
						<span class="p-blogCard__excerpt">batファイルの初めに「@echo off」という記載があると思いますが、この意味は何でしょうか？ なんの効果があるのでしょうか？「@echo off」が無ければどうなるのでしょ&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p>batファイルの3行目は説明になります。</p>



<p class="is-style-icon_info">batファイルでechoコマンドに関しては、下の記事を参考にしてください。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/07/html-007-2-300x225.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/bat-base-echo/">【bat基礎】バッチファイルのechoで文字列表示する！エラー対処法あり</a>
						<span class="p-blogCard__excerpt">batファイルで「echo」の使い方を今回は行います。 「echo」コマンドは指定の文字列を標準出力に表示する事が出来るコマンドです。 ただ文字列を表示するだけでなく、フ&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p>①4～6行目はifを使用して<span class="swl-bg-color has-swl-deep-03-background-color">「test1.txt」ファイルが無ければファイルを作成するコマンド</span>です。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-9-300x125.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/bat-file-exist-check/">【bat基礎】ファイル存在チェックする方法!existsを使用します！</a>
						<span class="p-blogCard__excerpt">batを使用していてファイル存在チェックしたい場合のやり方をご紹介します。existsを使用します。 もしファイルが存在したら〇〇、存在しなければ作成するといった場合&#8230;</span>					</div>
				</div>
			</div>
		</div>

<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/08/DB0804-3-300x210.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/bat-file-create/">【bat基礎】バッチでファイルを簡単に作成する方法！全３種類ご紹介</a>
						<span class="p-blogCard__excerpt">batファイルでファイルを作成する方法をお伝えします。 ファイルを何個も作成する場合に、batで行えば楽に業務を遂行する事が可能です。 batでファイルを簡単に作成する&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p>②batファイルの7行目で<strong><span class="swl-inline-color has-swl-deep-01-color">エラーレベル</span></strong>を表示しています。「%」で囲む事で変数を展開出来ます。</p>



<p class="is-style-dent_box">最後の行でbatファイルを一時停止しています。理由はbatファイルの実行結果を見る為です。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/09/jump0907-3-300x225.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/bat-base-pause/">【bat基礎】バッチでPAUSEを使用して一時停止する！waitはありません</a>
						<span class="p-blogCard__excerpt">バッチファイルを使用していて、途中で止めたいところで一時停止したい場合ないでしょうか？ そんな時バッチファイルでは「PAUSE」を使用します。 PAUSEの実用例を現役&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p>3行目の説明でも書いていますが、なければ作成あれば何もしないコマンドなので必ず成功します。</p>



<p><span class="swl-marker mark_green">「errorlevel」が「0」になれば成功</span>です。では先程のbatファイルを実行して見ます。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/07/analytics-2-300x157.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/bat-execution/">【bat】バッチを実行する方法！実行できない時の対処法などをご紹介</a>
						<span class="p-blogCard__excerpt">batファイルが既にありそれを実行してと言われたけど、どうやって実行すればわからない人の悩みに答えます。 またbatを実行しようとしたけど、できなかった時の原因と対&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h3 class="wp-block-heading">errorlevelチェック：成功判定のbat実行と結果</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-file="errorlevelの成功例" data-lang="Bash"><code>ファイルがなければ作成、あってもなくてもコマンドは成功するので：エラーレベル0
エラーレベル＝0</code></pre></div>



<p><span class="swl-marker mark_green">「errorlevel」に「0」</span>が入っている事がわかります。</p>



<h2 class="wp-block-heading">batファイルでのerrorlevelチェック：失敗判定</h2>



<p>次にコマンドを<span class="swl-bg-color has-swl-deep-01-background-color">失敗</span>させて「errorlevel」変数に「1」が入る事を確認していきます。</p>



<p>下のような失敗判定のbatファイルを作成してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-file="batファイル" data-lang="Bash"><code>@echo off

echo 存在しないフォルダに移動しようとすると失敗：エラーレベル1
cd 3333
echo エラーレベル＝%errorlevel%
pause</code></pre></div>



<h3 class="wp-block-heading">errorlevelチェック：失敗判定のbatファイル説明</h3>



<p>batファイルの4行目で存在しない適当な「3333」フォルダに移動しようとするコマンドです。</p>



<p>当然ながらカレントフォルダにそんなフォルダは存在しないのでエラーとなります。</p>



<p>errorlevelが「1」になれば成功です。では先程のbatファイルを実行して見ます。</p>



<h3 class="wp-block-heading">errorlevelチェック：失敗判定のbat実行と結果</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-file="errorlevelの失敗例" data-lang="Bash"><code>存在しないフォルダに移動しようとすると失敗：エラーレベル1
指定されたパスが見つかりません。
エラーレベル＝1</code></pre></div>



<p>「指定されたパスが見つかりません」というメッセージが出て、フォルダ移動できなかったので<span class="swl-marker mark_yellow">「errorlevel」に「1」</span>が入っています。</p>



<h2 class="wp-block-heading">batファイルでのerrorlevelチェック：コマンドがない場合の値</h2>



<p>最後に存在しないコマンドを指定して、判定できない状態にして<strong><span class="swl-inline-color has-swl-deep-01-color">「errorlevel」</span></strong>変数に<span class="swl-bg-color has-swl-deep-02-background-color">「9009」</span>が入る事を確認していきます。</p>



<p>下のような成功判定も失敗判定も出来ないbatファイルを作成してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-file="batファイル" data-lang="Bash"><code>@echo off

echo ないコマンドを投入：エラーレベル9009
copyy
echo エラーレベル＝%errorlevel%
pause</code></pre></div>



<h3 class="wp-block-heading">errorlevelチェック：コマンドがない場合のbatファイル説明</h3>



<p>batファイルの4行目で「copy」コマンドの記入ミスの「copyy」を指定します。</p>



<p>そんなコマンドはないので判定のしようがありません。こんな時は「errorlevel」変数には「9009」が入ります。</p>



<p><span class="swl-marker mark_blue">「errorlevel」が「9009」になれば成功</span>です。では先程のbatファイルを実行して見ます。</p>



<h3 class="wp-block-heading">errorlevelチェック：コマンドがない場合のbat実行と結果</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-file="errorlevel判定不能" data-lang="Bash"><code>ないコマンドを投入：エラーレベル9009
&#39;copyy&#39; は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
エラーレベル＝9009</code></pre></div>



<p>「copyy」は認識されていません。となり、<span class="swl-marker mark_blue">「errorlevel」変数に「9009」</span>が入っている事がわかります。</p>



<p>ここまでがbatファイルでの「errorlevel」の基礎になります。</p>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle ads" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-9330904718533231" data-ad-slot="6086594686"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">errorlevelとifとのコラボで条件分岐</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="576" src="https://sugublog.org/wp-content/uploads/2021/08/script_0809-1-1024x576.jpg" alt="スクリプト" class="wp-image-3869" srcset="https://sugublog.org/wp-content/uploads/2021/08/script_0809-1-1024x576.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/08/script_0809-1-300x169.jpg 300w, https://sugublog.org/wp-content/uploads/2021/08/script_0809-1-768x432.jpg 768w, https://sugublog.org/wp-content/uploads/2021/08/script_0809-1.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>では<span class="swl-marker mark_orange"><strong>応用編として実際に業務でも使用できるbatファイル</strong>を紹介します。</span></p>



<p>errorlevelとifを使用して条件分岐してみます。</p>



<p>下のようなif文とerrorlevelを使用したbatファイルを作成してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-file="batファイル" data-lang="Bash"><code>@echo off
REM errorlevelとifで条件分岐する
if %errorlevel% equ 0 (
echo エラーレベル0の時の処理
) else if %errorlevel% equ 1 (
echo エラーレベル1の時の処理
) else if %errorlevel% equ 9009 (
echo エラーレベル9009の時の処理
) else (
echo エラーレベルは%errorlevel%です。
)
pause</code></pre></div>



<p class="is-style-icon_pen">REMはbatファイルでコメントアウトするコマンドです。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/07/analytics-6-300x200.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/bat-rem-meen-and-use/">【bat基礎】remの意味と使い方を教えます！初心者向けの記事になります！</a>
						<span class="p-blogCard__excerpt">batファイルでremという文字を見かけるけど、どういった意味があるのでしょうか？ どのような時に使用するのでしょうか？使い方は？ といった疑問の声がありましたので&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p class="is-style-icon_pen">REM以外のコメントアウト方法や推奨コメントアウト方法については以下の記事を参照！</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/07/PC007-8-300x182.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/bat-commentout/">【bat基礎】バッチファイルでコメントアウトする方法！【エラー対処法有り】</a>
						<span class="p-blogCard__excerpt">batファイルでコメントアウトしたい場合の方法を記入します。 スクリプトを作成する上でコメントアウトは大事ですよね。後から見たら何をしているのかわからなくなった&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h3 class="wp-block-heading">errorlevelとifとのコラボbatファイル説明</h3>



<p>①batファイルの3行目で「if」を使用して「errorlevel」が0の時の条件分岐をしています。</p>



<p class="is-style-icon_info">ifコマンドの詳しい説明は以下の記事を参照してください。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/06/PC223-min-scaled.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/bat-if/">【bat】if文を詳しく説明します。複数条件や数値、文字列の比較まで</a>
						<span class="p-blogCard__excerpt">batファイルで条件分岐したい時には「if」構文を使用します。今回はifを使い方をまとめます。 batファイルに限らずプログラミングの条件分岐で処理を変える事は、業務を&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p>「equ」とは「equal」で等しいという意味の比較演算子です。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>比較演算子</th><th>説明</th><th>英文</th></tr></thead><tbody><tr><td>equ</td><td>等しい</td><td><span class="swl-inline-color has-swl-deep-01-color">equ</span>al</td></tr><tr><td>neq</td><td>等しくない</td><td><span class="swl-inline-color has-swl-deep-01-color">n</span>ot <span class="swl-inline-color has-swl-deep-01-color">eq</span>ual</td></tr><tr><td>geq</td><td>以上</td><td><span class="swl-inline-color has-swl-deep-01-color">g</span>reater than or <span class="swl-inline-color has-swl-deep-01-color">eq</span>ual</td></tr><tr><td>leq</td><td>以下</td><td><span class="swl-inline-color has-swl-deep-01-color">l</span>ess than or <span class="swl-inline-color has-swl-deep-01-color">eq</span>ual</td></tr><tr><td>gtr</td><td>より大きい</td><td><span class="swl-inline-color has-swl-deep-01-color">g</span>rea<span class="swl-inline-color has-swl-deep-01-color">t</span>e<span class="swl-inline-color has-swl-deep-01-color">r</span> than</td></tr><tr><td>lss</td><td>より小さい</td><td><span class="swl-inline-color has-swl-deep-01-color">l</span>e<span class="swl-inline-color has-swl-deep-01-color">ss</span> than</td></tr></tbody></table><figcaption class="wp-element-caption">batファイルのifでの比較演算子まとめ表</figcaption></figure>



<p>②4行目で<span class="swl-inline-color has-swl-deep-01-color">「errorlevel」が「0」の時の処理</span>を記入します。</p>



<p>③5行目で「else if」と比較演算子を使用して、更に条件分岐させています。<span class="swl-inline-color has-swl-deep-02-color">「errorlevel」が「1」の時の条件分岐</span>です。</p>



<p>④7行目も同様に条件分岐行います。<span class="swl-inline-color has-swl-deep-03-color">「errorlevel」が「9009」の時の条件分岐</span>です。</p>



<p>⑤9行目で「else」を使用して、どの条件にも当てはまらない時の分岐を指示しています。</p>



<p class="has-border -border02">これで<span class="swl-inline-color has-swl-deep-01-color">直前でのコマンド結果の「errorlevel」の値に即した処理</span>を行う事が出来ます。</p>



<h3 class="wp-block-heading">batファイルでerrorlevelとifを使用した時の注意点</h3>



<p>errorlevelとifを使用した時のよくある<span class="swl-bg-color has-swl-deep-01-background-color">エラー</span>としてスペースがあります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-file="動かないbatファイル" data-lang="Bash"><code>@echo off
REM errorlevelとifで条件分岐する
if %errorlevel% equ 0(
echo エラーレベル0の時の処理
) else if %errorlevel% equ 1(
echo エラーレベル1の時の処理
) else if %errorlevel% equ 9009(
echo エラーレベル9009の時の処理
) else (
echo エラーレベルは%errorlevel%です。
)
pause</code></pre></div>



<p>先程のbatファイルと同じに見えますが、上のbatファイルを実行して見て下さい。</p>



<p>動かないです。<span class="swl-bg-color has-swl-deep-01-background-color">batファイルのエラー</span>です。エラーの理由は<span class="swl-marker mark_yellow">比較している値の後にスペースがありません。</span></p>



<p class="is-style-icon_info">このようにスペースがないとエラーになります。スペースはわかりにくいので注意してください。</p>



<h2 class="wp-block-heading">batファイルでerrorlevelとChoiceを組み合わせる使い方</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="512" src="https://sugublog.org/wp-content/uploads/2021/06/check1-2-1024x512.jpg" alt="choice" class="wp-image-2945"/></figure>
</div>


<p>先程のbatファイルでは<span class="swl-marker mark_yellow">errorlevelに入る値</span>によって条件分岐しました。</p>



<p>今回は<span class="swl-marker mark_orange">ユーザーが入力する値</span>によって条件分岐して見ます。</p>



<p>下のようなchoice文とif文とerrorlevelを使用したbatファイルを作成してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-file="batファイル" data-lang="Bash"><code>@echo off
REM errorlevelとifで条件分岐する
choice /c xyz /t 30 /d z /m &#39;xyzから選択してください(タイムアウトは３０秒デフォルトではz)&#39;
if %errorlevel% == 1 (
echo 選んだのは１番目
) else if %errorlevel% == 2 (
echo 選んだのは２番目
) else if %errorlevel% == 3 (
echo 選んだのは３番目
)
pause</code></pre></div>



<h3 class="wp-block-heading">errorlevelとifでユーザーの選択肢により条件分岐するbatファイル説明</h3>



<p>①ここではchoiceコマンドを使用します。choiceコマンドは選択肢を提示してユーザーに選ばせます。</p>



<p>choiceコマンドのオプションは以下にまとめています。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>オプション</th><th>意味</th></tr></thead><tbody><tr><td>/c 選択肢</td><td>選択肢を指定する</td></tr><tr><td>/t タイムアウト値</td><td>ユーザーのアクションを待つ時間指定</td></tr><tr><td>/d 選択肢</td><td>指定しなかった場合のデフォルト値</td></tr><tr><td>/m &#8216;メッセージ&#8217;</td><td>プロンプトに表示するメッセージ指定</td></tr><tr><td>/cs</td><td>大文字と小文字を区別する</td></tr></tbody></table><figcaption class="wp-element-caption">choiceコマンドのオプション</figcaption></figure>



<p>上のオプションからもわかるように、今回のchoiceコマンドで「x」,「y」,「z」から選ばせる。30秒経過すると自動的に「z」が選択される。</p>



<p>②選択したものの番号が「errorlevel」に代入されます。今回でいうと「x」を選択すれば「errorlevel」に「1」が代入、「y」であれば「2」を、「z」であれば「3」が代入されます。</p>



<p>この仕組みが理解できればifとerrorlevelと比較演算子を使用して<span class="swl-bg-color has-swl-deep-03-background-color">ユーザーが入力した値による条件分岐</span>が作成できます。</p>



<h2 class="wp-block-heading">batファイルでerrorlevelに値を入れる</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="503" src="https://sugublog.org/wp-content/uploads/2021/11/Server_20211109-19-1024x503.jpg" alt="値を入れる" class="wp-image-4426" srcset="https://sugublog.org/wp-content/uploads/2021/11/Server_20211109-19-1024x503.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/Server_20211109-19-300x148.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/Server_20211109-19-768x378.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/Server_20211109-19.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>次に<strong><span class="swl-marker mark_orange">「errorlevel」に自分の好きな値</span></strong>を入れてみましょう。</p>



<p>これはサブルーチンで行います。</p>



<p>以下のbatファイルを作成してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-file="batファイル" data-lang="Bash"><code>@echo off
REM サブルーチンでerrorlevelに好きな値を入れる
call :subr
echo 指定した値がエラーレベルに入っていればエラーレベルは777
echo エラーレベル＝%errorlevel%
pause
:subr
echo サブルーチンの中のエラーレベルは%errorlevel%
exit /b 777</code></pre></div>



<h3 class="wp-block-heading">サブルーチンでerrorlevelに好きな値を入れるbatファイルの説明</h3>



<p class="is-style-icon_book">サブルーチンとはcallで指定した箇所に飛びます。exitで元の場所に戻ります。その時に「/b」オプションで「errorlevel」を指定可能です。</p>



<p>①上のbatファイルでは3行目でサブルーチンの7行目へ飛びます。8行目で「errorlevel」の値を表示しています。現在の値は何もしていないので0になります。</p>



<p>②最後の行で<span class="swl-marker mark_orange"><strong>戻り値の「777」を「errorlevel」に代入</strong>して4行目に戻ります。</span></p>



<p>③5行目で「errorlevel」が「777」になっているか確認しています。</p>



<p>④6行目で「pause」を使用してコマンドの結果を見れるようにしています。</p>



<h3 class="wp-block-heading">batファイルを実行</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-file="errorlevelに指定した値が入った結果" data-lang="Bash"><code>サブルーチンの中のエラーレベルは0
指定した値がエラーレベルに入っていればエラーレベルは777
エラーレベル＝777</code></pre></div>



<p class="has-border -border02">想定通り<span class="swl-bg-color has-swl-deep-02-background-color">エラーレベルが指定した「777」になっている事</span>が確認できます。</p>



<h3 class="wp-block-heading">サブルーチンでerrorlevelに好きな値を入れる時の注意点</h3>



<p>今回のサブルーチンを使用する時の<span class="swl-bg-color has-swl-deep-01-background-color">注意点</span>としては、<span class="swl-marker mark_yellow">サブルーチンをbatファイルの一番下に持っていく</span>ということです。</p>



<p>下のbatファイルを見て下さい。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-file="batファイル" data-lang="Bash"><code>@echo off
REM サブルーチンでerrorlevelに好きな値を入れる
call :subr
echo 指定した値がエラーレベルに入っていればエラーレベルは777
echo エラーレベル＝%errorlevel%

:subr
echo サブルーチンの中のエラーレベルは%errorlevel%
exit /b 777
pause</code></pre></div>



<h3 class="wp-block-heading">サブルーチンを使用してエラーが出るbatファイルの説明</h3>



<p>先程のbatファイルの「pause」が一番下にきています。サブルーチンは「:subr」から「exit /b 777」までです。その下にメインのコマンドが記述されています。</p>



<p>このエラーbatファイルを実行してみますが、実行できません。</p>



<p class="has-border -border02"><span class="swl-bg-color has-swl-deep-01-background-color">サブルーチンは一番下に記述してください。</span></p>



<h3 class="wp-block-heading">batで変数「errorlevel」に直接値をいれると値が固定される</h3>



<p class="is-style-big_icon_caution">「errorlevel」に好きな値を入れる時に注意しなければいけない事がもうひとつあります。</p>



<p>batファイルで変数に値を入れる時のデフォルトは以下になります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-file="変数に値を入れるbatファイル" data-lang="Bash"><code>set 変数名=値</code></pre></div>



<p>これで「errorlevel」に好きな値を入れれば早いのではないか？と思った人もいるかもしれません</p>



<p><span class="swl-marker mark_yellow">結果は代入できるが、それ以降値が変わらない</span>が正解です。</p>



<p>下のsetでerrorlevelに好きな値を入れたbatファイルをみてください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-file="値が変わらないerrorlevelのbatファイル" data-lang="Bash"><code>@echo off
REM setでerrorlevelに好きな値を入れる
set errorlevel=99
choice /c xyz /t 30 /d z /m &#39;xyzから選択してください(タイムアウトは３０秒デフォルトではz)&#39;
if %errorlevel% == 1 (
echo 選んだのは１番目
) else if %errorlevel% == 2 (
echo 選んだのは２番目
) else if %errorlevel% == 3 (
echo 選んだのは３番目
)

echo エラーレベル＝%errorlevel%
pause</code></pre></div>



<h3 class="wp-block-heading">batで変数「errorlevel」に直接値をいれるbatファイルの説明</h3>



<p>3行目でsetにより変数「errorlevel」に「99」を入れています。</p>



<p>4行目から11行目までは先程「batファイルでerrorlevelとChoiceを組み合わせる使い方」の見出しで行ったbatをそのまま使用しています。ユーザーが入れたものに紐づいた値が「errorlevel」に代入されるのでしたね。</p>



<p>13行目で最終の「errorlevel」の値を表示しています。</p>



<h3 class="wp-block-heading">batファイル実行</h3>



<p>このsetでerrorlevelに好きな値を入れたbatファイルを実行して「x」を指定してみます。</p>



<p>結果は「errorlevel」が「x」に対応する「1」になればOKです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-file="batで変数「errorlevel」に直接値をいれるbatファイルの実行結果" data-lang="Bash"><code>&#39;xyzから選択してください(タイムアウトは３０秒デフォルトではz)&#39; [X,Y,Z]?X
エラーレベル＝99</code></pre></div>



<p><span class="swl-bg-color has-swl-deep-01-background-color">エラーレベルが3行目で指定した「99」のまま</span>です。なので<span class="swl-bg-color has-swl-deep-01-background-color">失敗</span>です。</p>



<p>原因はsetは環境変数へ値を指定するので、そのbatファイルが終わるまではsetで指定した値から変わらないからです。</p>



<p>解決法は「サブルーチンでerrorlevelに好きな値を入れるbatファイル」項目を参考にしてください。</p>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle ads" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-9330904718533231" data-ad-slot="6086594686"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">batファイルでerrorlevelの使い方のまとめ</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="683" src="https://sugublog.org/wp-content/uploads/2021/11/script_1114-1024x683.jpg" alt="スクリプト" class="wp-image-4504" srcset="https://sugublog.org/wp-content/uploads/2021/11/script_1114-1024x683.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/script_1114-300x200.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/script_1114-768x512.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/script_1114.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p><strong>batファイルで「errorlevel」の基本的な使い方</strong>として、<strong>前のコマンドが正常終了したか確認する事</strong>が出来る。</p>



<p>「errorlevel」の基本は以下の3つです。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>batファイルでのerrorlevel基礎</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li>直前のコマンドが成功した場合はerrorlevel変数に「0」を入れる</li>



<li>直前のコマンドが失敗した場合はerrorlevel変数に「1」を入れる</li>



<li>コマンド自体がない場合はerrorlevel変数に「9009」を入れる</li>
</ul>
</div></div>



<h3 class="wp-block-heading">errorlevelとifとのコラボで条件分岐するbatファイル例</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-file="batファイル" data-lang="Bash"><code>@echo off
REM errorlevelとifで条件分岐する
if %errorlevel% equ 0 (
echo エラーレベル0の時の処理
) else if %errorlevel% equ 1 (
echo エラーレベル1の時の処理
) else if %errorlevel% equ 9009 (
echo エラーレベル9009の時の処理
) else (
echo エラーレベルは%errorlevel%です。
)
pause</code></pre></div>



<p><span class="swl-bg-color has-swl-deep-04-background-color">注意点</span>としては条件と「（」との間にスペースを忘れない事でした。</p>



<h3 class="wp-block-heading">errorlevelとChoiceを組み合わせるbatファイル例</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-file="batファイル" data-lang="Bash"><code>@echo off
REM errorlevelとifで条件分岐する
choice /c xyz /t 30 /d z /m &#39;xyzから選択してください(タイムアウトは３０秒デフォルトではz)&#39;
if %errorlevel% == 1 (
echo 選んだのは１番目
) else if %errorlevel% == 2 (
echo 選んだのは２番目
) else if %errorlevel% == 3 (
echo 選んだのは３番目
)
pause</code></pre></div>



<p>choiceコマンドのオプションは以下でした。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>オプション</th><th>意味</th></tr></thead><tbody><tr><td>/c 選択肢</td><td>選択肢を指定する</td></tr><tr><td>/t タイムアウト値</td><td>ユーザーのアクションを待つ時間指定</td></tr><tr><td>/d 選択肢</td><td>指定しなかった場合のデフォルト値</td></tr><tr><td>/m &#8216;メッセージ&#8217;</td><td>プロンプトに表示するメッセージ指定</td></tr><tr><td>/cs</td><td>大文字と小文字を区別する</td></tr></tbody></table><figcaption class="wp-element-caption">choiceコマンドのオプション</figcaption></figure>



<h3 class="wp-block-heading">errorlevelに好きな値を入れるbatファイル例</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-file="batファイル" data-lang="Bash"><code>@echo off
REM サブルーチンでerrorlevelに好きな値を入れる
call :subr
echo 指定した値がエラーレベルに入っていればエラーレベルは777
echo エラーレベル＝%errorlevel%
pause
:subr
echo サブルーチンの中のエラーレベルは%errorlevel%
exit /b 777</code></pre></div>



<p><span class="swl-bg-color has-swl-deep-04-background-color">注意点</span>はサブルーチンは最後に記入する（exitの後にはコマンドを書かない）</p>



<p>「set」コマンドで「errorlevel」に直接値をいれたらそれ以降は<span class="swl-marker mark_yellow">値は変更できない</span></p>
]]></content:encoded>
					
					<wfw:commentRss>https://sugublog.org/bat-errorlevel/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
