<?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>変数 &#8211; スグブログ</title>
	<atom:link href="https://sugublog.org/tag/%E5%A4%89%E6%95%B0/feed/" rel="self" type="application/rss+xml" />
	<link>https://sugublog.org</link>
	<description>ブログ運営について発信中</description>
	<lastBuildDate>Thu, 07 Mar 2024 09:03:22 +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>変数 &#8211; スグブログ</title>
	<link>https://sugublog.org</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【シェルスクリプト】変数の文字列を切り出して抽出する方法！</title>
		<link>https://sugublog.org/shellscript-cutting-and-extracting-variable-strings/</link>
					<comments>https://sugublog.org/shellscript-cutting-and-extracting-variable-strings/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[suguru]]></dc:creator>
		<pubDate>Thu, 07 Mar 2024 09:03:21 +0000</pubDate>
				<category><![CDATA[シェルスクリプト]]></category>
		<category><![CDATA[shellscript]]></category>
		<category><![CDATA[変数]]></category>
		<category><![CDATA[文字列]]></category>
		<guid isPermaLink="false">https://sugublog.org/?p=6472</guid>

					<description><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/07/script111-1024x597.jpg" class="webfeedsFeaturedVisual" /></p>ということで今回は、シェルスクリプトの変数の文字列を切り出して抽出する方法を、現役エンジニアの筆者がまとめます。 シェルスクリプトの変数で文字列を切り出して抽出する方法 今回紹介するshellscriptの変数で文字列を [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/07/script111-1024x597.jpg" class="webfeedsFeaturedVisual" /></p><div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="red"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://sugublog.org/wp-content/uploads/2021/02/cropped-dog003-150x150.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/02/cropped-dog003-150x150.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">シェルスクリプトの変数の文字列を切り出して抽出したいエンジニア</span></div><div class="c-balloon__body -thinking -border-on"><div class="c-balloon__text">
<p><strong><span class="swl-inline-color has-swl-deep-01-color">shellscript</span></strong>で変数の少し違う文字列を別の変数を作成して使用していると、変数管理が複雑化するので何とかしたい</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-right" data-col="green"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://sugublog.org/wp-content/uploads/2021/02/mine_white_001.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/02/mine_white_001.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">管理人</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>そういった時に<strong><span class="swl-inline-color has-swl-deep-01-color">変数の文字列を切り出して抽出</span></strong>する事で解決します。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-right" data-col="blue"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://sugublog.org/wp-content/uploads/2021/04/illust10_01.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/04/illust10_01.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>変数が変化すれば切り出し抽出した文字列も変化するので、管理も運用も楽です。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>ということで今回は、<span class="swl-format-1"><span class="swl-marker mark_orange"><strong>シェルスクリプトの変数の文字列を切り出して抽出する方法</strong></span></span>を、現役エンジニアの筆者がまとめます。</p>


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


<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">シェルスクリプトの変数で文字列を切り出して抽出する方法</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/09/code_0923-2-1-1024x683.jpg" alt="code" class="wp-image-4188" srcset="https://sugublog.org/wp-content/uploads/2021/09/code_0923-2-1-1024x683.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/09/code_0923-2-1-300x200.jpg 300w, https://sugublog.org/wp-content/uploads/2021/09/code_0923-2-1-768x512.jpg 768w, https://sugublog.org/wp-content/uploads/2021/09/code_0923-2-1.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>今回紹介する<strong><span class="swl-inline-color has-swl-deep-01-color">shellscriptの変数で文字列を切り出して抽出</span></strong>する方法は以下の2本です。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>shellscriptの変数で文字列を切り出して抽出する方法２選</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li><span class="swl-inline-color has-swl-deep-01-color">数字</span>で指定して文字列を切り出して抽出する</li>



<li><span class="swl-inline-color has-swl-deep-01-color">パターン</span>で文字列を切り出して抽出する</li>
</ul>
</div></div>



<h2 class="wp-block-heading">数字で指定して文字列を切り出して抽出する</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/09/randam_0915-6-1024x576.jpg" alt="文字列切り出し" class="wp-image-4171" srcset="https://sugublog.org/wp-content/uploads/2021/09/randam_0915-6-1024x576.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/09/randam_0915-6-300x169.jpg 300w, https://sugublog.org/wp-content/uploads/2021/09/randam_0915-6-768x432.jpg 768w, https://sugublog.org/wp-content/uploads/2021/09/randam_0915-6.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>シェルスクリプトの変数を<span class="swl-inline-color has-swl-deep-01-color">数字で指定して</span>、文字列を切り出して抽出する方法の基礎は以下です。</p>



<p>記述がややこしいですが、下の表のように追加するコードを意識していくと分かりやすくなります。</p>



<figure class="wp-block-table"><table><thead><tr><th>種類</th><th>shellscript</th><th>説明</th><th>追加するコード</th></tr></thead><tbody><tr><th>&#8211;</th><td>変数=文字列</td><td>変数指定</td><td>&#8211;</td></tr><tr><th>&#8211;</th><td>${変数}</td><td>変数展開</td><td>${}</td></tr><tr><th colspan="4">文字列を切り出す方法</th></tr><tr><th>1</th><td>${変数:開始位置}</td><td>開始位置前方から</td><td>:開始位置</td></tr><tr><th>2</th><td>${変数: -開始位置}</td><td>開始位置後方から</td><td>: -開始位置</td></tr><tr><th>3</th><td>${変数:開始位置:個数}</td><td>開始位置と個数指定</td><td>: 開始位置:個数</td></tr><tr><th>4</th><td>${変数:開始位置:-末尾指定}</td><td>開始位置と末尾指定</td><td>:開始位置:-末尾指定</td></tr></tbody></table><figcaption class="wp-element-caption">シェルスクリプトの変数を数字で指定して文字列を切り出し抽出する方法</figcaption></figure>



<p class="is-style-big_icon_caution">※２の開始位置を後方から指定する場合の「:」と「-」の間に半角スペースが必要になる事が注意する点です。</p>



<h3 class="wp-block-heading">開始位置を<span class="swl-inline-color has-swl-deep-01-color">前方</span>から指定する文字列切り出し</h3>



<p>では開始位置を<span class="swl-inline-color has-swl-deep-01-color">前方から指定</span>する文字列切り出しを行います。</p>



<p>以下のような変数を指定します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>suuji=0123456789</code></pre></div>



<p>１を開始位置に指定して表示してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>echo ${suuji:1}</code></pre></div>



<p>このシェルスクリプトを実行してみます。</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-2-300x169.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/shell-script-execution/">【シェルスクリプト基礎】コマンドを実行する様々な方法をご紹介！</a>
						<span class="p-blogCard__excerpt">シェルスクリプトを実行する時に困った事はありませんか？ シェルスクリプトのコマンド実行での失敗メッセージ一覧 「実行権限がありません」 「コマンドが見つかりませ&#8230;</span>					</div>
				</div>
			</div>
		</div>


<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>123456789</code></pre></div>



<p>結果は上記になりました。</p>



<p class="is-style-icon_book">シェルスクリプトで１番目を指定するのは「0」になります。今回は1を指定したので２番目の1から末尾までが表示されています。</p>



<p class="has-border -border01">2番目から末尾までがきちんと表示されています。</p>



<h3 class="wp-block-heading">開始位置を<span class="swl-inline-color has-swl-deep-01-color">後方</span>から指定する文字列切り出し</h3>



<p>次に開始位置を<span class="swl-inline-color has-swl-deep-01-color">後方から指定</span>する文字列切り出しを行います。</p>



<p>１を開始位置に指定して表示してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>echo ${suuji: -3}</code></pre></div>



<p>このシェルスクリプトを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>789</code></pre></div>



<p>結果は上記になりました。</p>



<p class="has-border -border01">後方始まりで３つ目から末尾までがきちんと表示されています。</p>



<h3 class="wp-block-heading"><span class="swl-inline-color has-swl-deep-01-color">開始位置と個数</span>を指定する文字列切り出し</h3>



<p>次に<span class="swl-inline-color has-swl-deep-01-color">開始位置と個数を指定</span>する文字列切り出しを行います。</p>



<p>開始位置を３、個数を６に指定して表示してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>echo ${suuji:3:6}</code></pre></div>



<p>このシェルスクリプトを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>345678</code></pre></div>



<p>結果は上記になりました。</p>



<p class="has-border -border01">開始位置が３で個数が６つきちんと表示されています。</p>



<h3 class="wp-block-heading"><span class="swl-inline-color has-swl-deep-01-color">開始位置と末尾</span>を指定する文字列切り出し</h3>



<p>次に<span class="swl-inline-color has-swl-deep-01-color">開始位置と末尾を指定</span>する文字列切り出しを行います。</p>



<p>開始位置を３、末尾を-3に指定して表示してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>echo ${suuji:3:-3}</code></pre></div>



<p>このシェルスクリプトを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>3456</code></pre></div>



<p>結果は上記になりました。</p>



<p class="has-border -border01">開始位置が３で後方から3番目の6までが、きちんと表示されています。</p>



<h2 class="wp-block-heading">補足：配列に格納されている文字列を切り出して抽出</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/07/server_007-1024x683.jpg" alt="配列" class="wp-image-3594" srcset="https://sugublog.org/wp-content/uploads/2021/07/server_007-1024x683.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/07/server_007-300x200.jpg 300w, https://sugublog.org/wp-content/uploads/2021/07/server_007-768x512.jpg 768w, https://sugublog.org/wp-content/uploads/2021/07/server_007-1536x1025.jpg 1536w, https://sugublog.org/wp-content/uploads/2021/07/server_007-scaled.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>同じ様に<span class="swl-marker mark_orange"><span class="swl-inline-color has-swl-deep-01-color">配列に格納されている文字列</span>も部分的に切り出して抽出</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-7-e1709401330152-300x201.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/shell-script-array/">【シェルスクリプト】配列の使い方！宣言、格納、参照のやり方を教えます</a>
						<span class="p-blogCard__excerpt">shellscriptで配列を使いたいけど、どうやって扱えば良いかわかりません。 などと言ったシェルスクリプトの配列について難しいという声が多いです。 なので配列の宣言か&#8230;</span>					</div>
				</div>
			</div>
		</div>


<figure class="wp-block-table"><table><thead><tr><th>種類</th><th>shellscript</th><th>説明</th><th>追加するコード</th></tr></thead><tbody><tr><th>&#8211;</th><td>配列=(文字列1 文字列2 &#8230;)</td><td>配列に文字列格納</td><td>&#8211;</td></tr><tr><th>&#8211;</th><td>${配列[@]}</td><td>配列全て展開</td><td>${[@]}</td></tr><tr><th colspan="4">配列の文字列を切り出す方法</th></tr><tr><th>1</th><td>${配列[@]:開始位置}</td><td>開始位置前方から</td><td>:開始位置</td></tr><tr><th>2</th><td>${配列[@]: -開始位置}</td><td>開始位置後方から</td><td>: -開始位置</td></tr><tr><th>3</th><td>${配列[@]:開始位置:個数}</td><td>開始位置と個数指定</td><td>: 開始位置:個数</td></tr></tbody></table><figcaption class="wp-element-caption">シェルスクリプトの配列を数字で指定して文字列を切り出し抽出する方法</figcaption></figure>



<h3 class="wp-block-heading">配列で指定する文字列切り出し</h3>



<p>では同じ様に配列で指定する文字列切り出しを行います。以下のような配列があるとします。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>array=(000 111 222 333 444 555)</code></pre></div>



<p>１を開始位置に指定して表示してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>echo ${array[@]:1}
echo ${array[@]: -3}
echo ${array[@]:1:3}</code></pre></div>



<p>このシェルスクリプトを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>111 222 333 444 555
333 444 555
111 222 333</code></pre></div>



<p>結果は上記になりました。</p>



<p class="has-border -border01">変数の文字列切り出しと同様に、配列の中身が切り出されています。</p>



<h3 class="wp-block-heading">変数ではできて配列では<span class="swl-inline-color has-swl-deep-01-color">出来ない</span>切り出し</h3>



<p>変数ではできていた開始位置と後方位置を指定して切り出す方法だけは配列ではできません。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>echo ${array[@]:1:-1}</code></pre></div>



<p>上のシェルスクリプトを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>-bash: -1: substring expression &lt; 0</code></pre></div>



<p class="is-style-big_icon_batsu">配列の「開始位置と後方位置を指定して切り出す方法」はエラーで切り出しできませんでした。</p>



<h2 class="wp-block-heading">パターンで文字列を切り出して抽出する</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><span class="swl-marker mark_orange"><strong>シェルスクリプトの変数をパターンで指定</strong>して、<strong>文字列を切り出して抽出する方法</strong></span>です。2パターンあります。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>パターンで指定して、文字列を切り出して抽出する方法2選</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li>文字列の<span class="swl-inline-color has-swl-deep-01-color">先頭</span>からパターンマッチする</li>



<li>文字列の<span class="swl-inline-color has-swl-deep-01-color">後方</span>からパターンマッチする</li>
</ul>
</div></div>



<p>パターンで指定する時のコードも纏めておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>種類</th><th>shellscript</th><th>説明</th><th>追加するコード</th></tr></thead><tbody><tr><th>&#8211;</th><td>変数=文字列</td><td>変数指定</td><td>&#8211;</td></tr><tr><th>&#8211;</th><td>${変数}</td><td>変数展開</td><td>${}</td></tr><tr><th colspan="4">文字列をパターンで切り出す方法</th></tr><tr><th>1</th><td>${変数#パターン}</td><td>開始位置<span class="swl-inline-color has-swl-deep-02-color">前方</span>、<span class="swl-inline-color has-swl-deep-02-color">最短</span>マッチ</td><td>#パターン</td></tr><tr><th>2</th><td>${変数##パターン}</td><td>開始位置<span class="swl-inline-color has-swl-deep-02-color">前方</span>、<span class="swl-inline-color has-swl-deep-03-color">最長</span>マッチ</td><td>##パターン</td></tr><tr><th>3</th><td>${変数%パターン}</td><td>開始位置<span class="swl-inline-color has-swl-deep-03-color">後方</span>、<span class="swl-inline-color has-swl-deep-02-color">最短</span>マッチ</td><td>%パターン</td></tr><tr><th>4</th><td>${変数%%パターン}</td><td>開始位置<span class="swl-inline-color has-swl-deep-03-color">後方</span>、<span class="swl-inline-color has-swl-deep-03-color">最長</span>マッチ</td><td>%%パターン</td></tr></tbody></table><figcaption class="wp-element-caption">シェルスクリプトの変数をパターンで指定して文字列を切り出し抽出する方法</figcaption></figure>



<p class="is-style-icon_info">パターンマッチなので「*（アスタリスク）」が使用できます。アスタリスクは任意の文字列として扱えます。</p>



<h3 class="wp-block-heading">文字列の<span class="swl-inline-color has-swl-deep-01-color">先頭</span>からパターンマッチする</h3>



<p>では文字列の<span class="swl-inline-color has-swl-deep-01-color">先頭</span>からパターンマッチする時のシェルスクリプトを何個か記述してみます。</p>



<p>まず以下のような変数を指定しておきます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>mojiretsu=shellscript.sh.zp</code></pre></div>



<h3 class="wp-block-heading">文字列の<span class="swl-inline-color has-swl-deep-01-color">先頭</span>からパターンマッチ１：<span class="swl-inline-color has-swl-deep-01-color">先頭文字指定</span></h3>



<p>以下のシェルスクリプトで先頭が「shell」の文字列であれば、指定した文字列を切り取って抽出します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>echo ${mojiretsu#shell}</code></pre></div>



<p>上のシェルスクリプトを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>script.sh.zp</code></pre></div>



<p class="has-border -border01">結果は指定した「shell」を切り取って抽出できています。</p>



<h3 class="wp-block-heading">文字列の<span class="swl-inline-color has-swl-deep-01-color">先頭</span>からパターンマッチ２：<span class="swl-inline-color has-swl-deep-01-color">最短マッチ</span></h3>



<p>以下のシェルスクリプトで先頭が任意の文字列（*）で「.」の文字列があれば、最短マッチで指定した文字列を切り取って抽出します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>echo ${mojiretsu#*.}</code></pre></div>



<p>上のシェルスクリプトを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>sh.zp</code></pre></div>



<p class="has-border -border01">結果は<span class="swl-inline-color has-swl-deep-01-color">最初に「.」があった文字列</span>までを切り取って抽出できています。</p>



<h3 class="wp-block-heading">文字列の<span class="swl-inline-color has-swl-deep-01-color">先頭</span>からパターンマッチ３：<span class="swl-inline-color has-swl-deep-01-color">最長マッチ</span></h3>



<p>先程と同じ条件で「.」の文字列があれば、最長マッチで指定した文字列を切り取って抽出します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>echo ${mojiretsu##*.}</code></pre></div>



<p>上のシェルスクリプトを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>zp</code></pre></div>



<p class="has-border -border01">結果は<span class="swl-inline-color has-swl-deep-01-color">最後に「.」があった文字列</span>までを切り取って抽出できています。</p>



<h3 class="wp-block-heading">文字列の<span class="swl-inline-color has-swl-deep-02-color">末尾</span>からパターンマッチ１：<span class="swl-inline-color has-swl-deep-01-color">先頭文字指定</span></h3>



<p>今度は文字列の<span class="swl-inline-color has-swl-deep-01-color">末尾</span>からパターンマッチする時のシェルスクリプトを何個か記述してみます。</p>



<p>以下のシェルスクリプトで末尾が「zp」の文字列であれば、指定した文字列を切り取って抽出します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>echo ${mojiretsu%zp}</code></pre></div>



<p>上のシェルスクリプトを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>shellscript.sh.</code></pre></div>



<p class="has-border -border01">結果は指定した「zp」を切り取って抽出できています。</p>



<h3 class="wp-block-heading">文字列の<span class="swl-inline-color has-swl-deep-01-color"><span class="swl-inline-color has-swl-deep-02-color">末尾</span></span>からパターンマッチ２：<span class="swl-inline-color has-swl-deep-01-color">最短マッチ</span></h3>



<p>以下のシェルスクリプトで末尾が任意の文字列（*）で「.」の文字列があれば、最短マッチで指定した文字列を切り取って抽出します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>echo ${mojiretsu%.*}</code></pre></div>



<p>上のシェルスクリプトを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>shellscript.sh</code></pre></div>



<p class="has-border -border01">結果は<span class="swl-inline-color has-swl-deep-01-color">末尾から見て最初に「.」があった文字列</span>までを切り取って抽出できています。</p>



<h3 class="wp-block-heading">文字列の<span class="swl-inline-color has-swl-deep-01-color"><span class="swl-inline-color has-swl-deep-02-color">末尾</span></span>からパターンマッチ３：<span class="swl-inline-color has-swl-deep-01-color">最長マッチ</span></h3>



<p>先程と同じ条件で「.」の文字列があれば、最長マッチで指定した文字列を切り取って抽出します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>echo ${mojiretsu%%.*}</code></pre></div>



<p>上のシェルスクリプトを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>shellscript</code></pre></div>



<p class="has-border -border01">結果は<span class="swl-inline-color has-swl-deep-01-color">末尾から見て最後に「.」があった文字列</span>までを切り取って抽出できています。</p>



<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">まとめ：シェルスクリプトの変数で文字列を切り出して抽出する方法</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-4-1024x576.jpg" alt="スクリプト" class="wp-image-3872" srcset="https://sugublog.org/wp-content/uploads/2021/08/script_0809-4-1024x576.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/08/script_0809-4-300x169.jpg 300w, https://sugublog.org/wp-content/uploads/2021/08/script_0809-4-768x432.jpg 768w, https://sugublog.org/wp-content/uploads/2021/08/script_0809-4.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p><strong><span class="swl-inline-color has-swl-deep-01-color"><span class="swl-marker mark_orange">shellscriptの変数で文字列を切り出して抽出する方法</span></span></strong>は以下の2本でした。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>shellscriptの変数で文字列を切り出して抽出する方法２選</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li><span class="swl-inline-color has-swl-deep-01-color">数字</span>で指定して文字列を切り出して抽出する</li>



<li><span class="swl-inline-color has-swl-deep-01-color">パターン</span>で文字列を切り出して抽出する</li>
</ul>
</div></div>



<h3 class="wp-block-heading">数字で指定して文字列を切り出して抽出する</h3>



<figure class="wp-block-table"><table><thead><tr><th>種類</th><th>shellscript</th><th>説明</th><th>実行結果</th></tr></thead><tbody><tr><th>&#8211;</th><td>suuji=0123456789</td><td>変数指定</td><td>&#8211;</td></tr><tr><th>&#8211;</th><td>${suuji}</td><td>変数展開</td><td>0123456789</td></tr><tr><th colspan="4">文字列を切り出す方法</th></tr><tr><th>1</th><td>${suuji:3}</td><td>開始位置前方から</td><td>3456789</td></tr><tr><th>2</th><td>${suuji: -3}</td><td>開始位置後方から</td><td>789</td></tr><tr><th>3</th><td>${suuji:3:6}</td><td>開始位置と個数指定</td><td>345678</td></tr><tr><th>4</th><td>${suuji:3:-3}</td><td>開始位置と末尾指定</td><td>3456</td></tr></tbody></table><figcaption class="wp-element-caption">シェルスクリプトの変数を数字で指定して文字列を切り出し抽出した結果まとめ</figcaption></figure>



<p class="is-style-big_icon_caution">※２の開始位置を後方から指定する場合の「:」と「-」の間に半角スペースが必要になる事が注意する点です。</p>



<h3 class="wp-block-heading">配列に格納されている文字列を切り出して抽出</h3>



<figure class="wp-block-table"><table><thead><tr><th>種類</th><th>shellscript</th><th>説明</th><th>実行結果</th></tr></thead><tbody><tr><th>&#8211;</th><td>array=(00 11 22 33 44 55)</td><td>配列に文字列格納</td><td>&#8211;</td></tr><tr><th>&#8211;</th><td>${array[@]}</td><td>配列全て展開</td><td>00 11 22 33 44 55</td></tr><tr><th colspan="4">配列の文字列を切り出す方法</th></tr><tr><th>1</th><td>${array[@]:1}</td><td>開始位置前方から</td><td>11 22 33 44 55</td></tr><tr><th>2</th><td>${array[@]: -3}</td><td>開始位置後方から</td><td>33 44 55</td></tr><tr><th>3</th><td>${array[@]:1:3}</td><td>開始位置と個数指定</td><td>11 22 33</td></tr></tbody></table><figcaption class="wp-element-caption">シェルスクリプトの配列を数字で指定して文字列を切り出し抽出した結果</figcaption></figure>



<h3 class="wp-block-heading">変数をパターンで指定して、文字列を切り出して抽出する方法</h3>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>パターンで指定して、文字列を切り出して抽出する方法2選</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li>文字列の<span class="swl-inline-color has-swl-deep-02-color">先頭</span>からパターンマッチする</li>



<li>文字列の<span class="swl-inline-color has-swl-deep-03-color">後方</span>からパターンマッチする</li>
</ul>
</div></div>



<figure class="wp-block-table"><table><thead><tr><th>種類</th><th>shellscript</th><th>説明</th><th>実行結果</th></tr></thead><tbody><tr><th>&#8211;</th><td>mojiretsu=shellscript.sh.zp</td><td>変数指定</td><td>&#8211;</td></tr><tr><th>&#8211;</th><td>${mojiretsu}</td><td>変数展開</td><td>shellscript.sh.zp</td></tr><tr><th colspan="4">文字列をパターンで切り出す方法</th></tr><tr><th>1</th><td>${mojiretsu#shell}</td><td>開始文字指定</td><td>script.sh.zp</td></tr><tr><th>2</th><td>${mojiretsu#*.}</td><td>開始位置<span class="swl-inline-color has-swl-deep-02-color">前方</span>、<span class="swl-inline-color has-swl-deep-02-color">最短</span>マッチ</td><td>sh.zp</td></tr><tr><th>3</th><td>${mojiretsu##*.}</td><td>開始位置<span class="swl-inline-color has-swl-deep-02-color">前方</span>、<span class="swl-inline-color has-swl-deep-03-color">最長</span>マッチ</td><td>zp</td></tr><tr><th>4</th><td>${mojiretsu%zp}</td><td>開始文字後方指定</td><td>shellscript.sh.</td></tr><tr><th>5</th><td>${mojiretsu%.*}</td><td>開始位置<span class="swl-inline-color has-swl-deep-03-color">後方</span>、<span class="swl-inline-color has-swl-deep-02-color">最短</span>マッチ</td><td>shellscript.sh</td></tr><tr><th>6</th><td>${mojiretsu%%.*}</td><td>開始位置<span class="swl-inline-color has-swl-deep-03-color">後方</span>、<span class="swl-inline-color has-swl-deep-03-color">最長</span>マッチ</td><td>shellscript</td></tr></tbody></table><figcaption class="wp-element-caption">シェルスクリプトの変数をパターンで指定して文字列を切り出し抽出した結果</figcaption></figure>



<p class="is-style-icon_info">パターンマッチなので「*（アスタリスク）」が使用できます。アスタリスクは任意の文字列として扱えます。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-right" data-col="blue"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://sugublog.org/wp-content/uploads/2021/02/mine_white_002-e1624111291945.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/02/mine_white_002-e1624111291945.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">管理人</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>このように<strong><span class="swl-inline-color has-swl-deep-01-color">シェルスクリプトの変数の文字列を切り出し</span></strong>する事で変数管理が楽になります。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>]]></content:encoded>
					
					<wfw:commentRss>https://sugublog.org/shellscript-cutting-and-extracting-variable-strings/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【bat】バッチファイルで変数や環境変数の使い方！エラー対処法あり</title>
		<link>https://sugublog.org/bat-hensu/</link>
					<comments>https://sugublog.org/bat-hensu/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[suguru]]></dc:creator>
		<pubDate>Sun, 29 Oct 2023 13:28:48 +0000</pubDate>
				<category><![CDATA[bat]]></category>
		<category><![CDATA[バッチファイル]]></category>
		<category><![CDATA[変数]]></category>
		<guid isPermaLink="false">https://sugublog.org/?p=5717</guid>

					<description><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/08/script_0809-11-1024x666.jpg" class="webfeedsFeaturedVisual" /></p>バッチファイルで変数や環境変数を設定するやり方を教えます。 その他にも変数に関わる事をご紹介します。 上記の事を現役エンジニアの筆者が詳しくお伝えします！ 全てに実例バッチファイルも用意して、実行結果を載せているのでわか [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/08/script_0809-11-1024x666.jpg" class="webfeedsFeaturedVisual" /></p>
<p><strong><span class="swl-inline-color has-swl-deep-01-color">バッチファイルで変数や環境変数を設定するやり方</span></strong>を教えます。</p>



<p>その他にも変数に関わる事をご紹介します。</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>変数を指定する時の<span class="swl-inline-color has-swl-deep-01-color">注意点</span>など</li>



<li>計算結果を変数に代入するやり方</li>



<li>ユーザーが入力したものを変数に入れるやり方</li>



<li>初期から入っている便利な環境変数などもご紹介！</li>



<li>変数値の一部を置き換えする方法</li>



<li>変数値の一部の文字列を切り出しする方法</li>
</ul>
</div></div>



<p>上記の事を現役エンジニアの筆者が詳しくお伝えします！</p>


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


<p>全てに実例バッチファイルも用意して、実行結果を載せているのでわかりやすいです。</p>



<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">バッチファイルで変数や環境変数を設定する方法</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-4-1024x576.jpg" alt="スクリプト" class="wp-image-3872" srcset="https://sugublog.org/wp-content/uploads/2021/08/script_0809-4-1024x576.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/08/script_0809-4-300x169.jpg 300w, https://sugublog.org/wp-content/uploads/2021/08/script_0809-4-768x432.jpg 768w, https://sugublog.org/wp-content/uploads/2021/08/script_0809-4.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h3 class="wp-block-heading">変数や環境変数を設定する基礎</h3>



<p><span class="swl-marker mark_orange"><strong>バッチファイルで変数</strong>を設定するやり方の基礎</span>は以下です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-c" data-file="バッチファイルで変数を設定する基礎" data-lang="C"><code>set 変数名=変数の値</code></pre></div>



<p><span class="swl-marker mark_orange"><strong>変数に入れた値を展開</strong>するには、以下のように変数名を「%」で囲って記述します。</span></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-c" data-file="バッチファイルで変数を展開する基礎" data-lang="C"><code>%変数名%</code></pre></div>



<h3 class="wp-block-heading">変数に値を入れて表示する例文ファイルの説明</h3>



<p>では変数に文字を入れて、変数の展開を実際に行ってみます。以下のバッチファイルを作成してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="バッチファイルで変数を入れて展開してみる"><code>@echo off

set hensu=変数の文字
echo %hensu%

pause</code></pre></div>



<p class="is-style-dent_box">最初に「@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>「hensu」という変数を作成して「変数の文字」という文字を入れてみました。</p>



<p>変数を%で囲い展開したものを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 class="is-style-dent_box">最後にpauseで一時停止しています。</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>


<h3 class="wp-block-heading">変数に値を入れて表示する例文ファイルの実行結果</h3>



<p>このバッチファイルを実行して見ます。</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>


<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="バッチファイルで変数を入れて展開してみた結果"><code>変数の文字</code></pre></div>



<p>変数に入れた文字がきちんと表示されています。</p>



<h2 class="wp-block-heading">変数に値を入れて表示する時のエラーなど</h2>



<p><span class="swl-marker mark_yellow">この時に<span class="swl-bg-color has-swl-deep-01-background-color">エラー</span>が出たり思い通りの結果にならなかった場合もあると思います。</span></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>文字を「&#8221;」で囲っている</li>



<li>=の前後に空白が入っている</li>
</ul>
</div></div>



<p>それそれエラーなどの例を見ていきます。</p>



<h4 class="wp-block-heading">エラー１：文字を&#8221;で囲う</h4>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="エラーバッチファイル１：文字を&quot;で囲う"><code>@echo off

set hensu=&quot;変数の文字&quot;
echo %hensu%

pause</code></pre></div>



<p>スクリプトでは文字列を「&#8221;」などで囲う事がありますが、<span class="swl-marker mark_yellow">バッチファイルでは囲う必要はありません。</span></p>



<p>このバッチファイルを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="エラーバッチファイル１：文字を&quot;で囲うの実行結果"><code>&quot;変数の文字&quot;</code></pre></div>



<p>「&#8221;」までが表示されています。本来であれば変数の文字だけを表示したいので思い通りの結果ではありません。</p>



<p class="has-border -border02">バッチファイルで変数に文字列を入れたい時に「&#8221;」で囲う必要はありません。</p>



<h4 class="wp-block-heading">エラー２：=の前後に空白が入っている</h4>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="エラーバッチファイル２：=の前後に空白が入っている"><code>@echo off

set hensu = 変数の文字
echo %hensu%

pause</code></pre></div>



<p>スクリプトでは変数に文字列を入れる時の=の前後に空白があっても良いですが、<span class="swl-marker mark_yellow">バッチファイルでは=の前後に空白があれば<span class="swl-bg-color has-swl-deep-01-background-color">エラー</span>となります。</span></p>



<p>このバッチファイルを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="エラーバッチファイル２：=の前後に空白が入っているファイルの実行結果"><code>ECHO は &lt;OFF&gt; です。
続行するには何かキーを押してください . . .</code></pre></div>



<p>変数に文字列が入っていない為、うまく表示されていません。</p>



<p class="has-border -border02"><strong><span class="swl-inline-color has-swl-deep-01-color">バッチファイルで変数</span></strong>に文字列を入れたい時に<span class="swl-inline-color has-swl-deep-01-color">「=」の前後に空白は入れてはいけません。</span></p>



<p class="is-style-icon_announce">バッチファイルの変数で思い通りにの結果にならない時は、「=」の前後を確認してください。</p>



<p class="has-border -border04 is-style-crease">エラーバッチファイル２の補足</p>



<p class="is-style-sticky_box">補足として「=」の前だけに空白を入れた場合</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="=の前だけに空白が入っている"><code>@echo off

set hensu =変数の文字
echo %hensu%

pause</code></pre></div>



<p>このバッチファイルを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="=の前だけに空白が入っているファイルの結果"><code>ECHO は &lt;OFF&gt; です。
続行するには何かキーを押してください . . .</code></pre></div>



<p>同じ結果でエラーになっています。</p>



<p class="is-style-sticky_box">補足として「=」の後だけに空白を入れた場合</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="=の後だけに空白が入っている"><code>@echo off

set hensu= 変数の文字
echo %hensu%

pause</code></pre></div>



<p>このバッチファイルを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="=の後だけに空白が入っているファイルの結果"><code> 変数の文字</code></pre></div>



<p class="is-style-big_icon_caution">成功しているように見えますが、<span class="swl-marker mark_yellow">「変数の文字」の前にスペースが入っています。</span></p>



<p>「=」の後だけに空白を入れた場合も、思い通りの結果となっていません。</p>



<h2 class="wp-block-heading">バッチファイルで変数に計算結果を代入する方法</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>


<h3 class="wp-block-heading">変数に計算結果を代入する基礎</h3>



<p>バッチファイルで変数に文字列を入れる方法はわかりました。</p>



<p>では<strong><span class="swl-inline-color has-swl-deep-01-color">変数に数式の結果を入れる事</span></strong>はできるのでしょうか？</p>



<p>結論はできます。バッチファイルで変数に計算結果を代入する方法の基礎は以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-c" data-file="バッチファイルで変数に計算結果を代入する方法" data-lang="C"><code>set /a 変数名=計算式</code></pre></div>



<p class="has-border -border02">「/a」オプションをつけると計算結果を代入する事が可能です。</p>



<p>以下のバッチファイルを作成してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="バッチファイルで変数に計算結果を代入するファイル"><code>@echo off

set /a keisankekka=2+3
echo %keisankekka%

pause</code></pre></div>



<p>「set /a」で「keisankekka」に計算結果を代入しています。実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="バッチファイルで変数に計算結果を代入するファイルの結果"><code>5</code></pre></div>



<p>計算結果が変数に代入されて表示されています。</p>



<h3 class="wp-block-heading">簡単に変数の値を更に計算していく</h3>



<p>変数に計算結果を入れて、その値を使用して更に計算していく方法は以下です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="バッチファイルで変数の値を更に計算していく"><code>@echo off

set /a keisankekka=2+3
set /a keisankekka=%keisankekka%+3
echo %keisankekka%

pause</code></pre></div>



<p>これではややこしくて汚いコマンドですね。これを以下のように修正します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="バッチファイルで変数の値を更に計算していく"><code>@echo off

set /a keisankekka=2+3
set /a keisankekka+=3
echo %keisankekka%

pause</code></pre></div>



<p class="has-border -border02">「=」の前に演算子を付ける事で、簡単に変数の値をどんどん計算していく事が可能です。</p>



<h2 class="wp-block-heading">バッチファイルで変数にユーザーが入力したものを代入する方法</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="682" src="https://sugublog.org/wp-content/uploads/2021/11/DB_1114-5-1024x682.jpg" alt="変数設定" class="wp-image-4502" srcset="https://sugublog.org/wp-content/uploads/2021/11/DB_1114-5-1024x682.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/DB_1114-5-300x200.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/DB_1114-5-768x511.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/DB_1114-5.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h3 class="wp-block-heading">変数にユーザーが入力したものを代入する基礎</h3>



<p><strong><span class="swl-inline-color has-swl-deep-01-color">ユーザーが入力したものを変数に入れたい場合</span></strong>もありますよね。</p>



<p>そういった場合は<span class="swl-marker mark_orange">「/p」オプションをつけると簡単にできます。</span></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-c" data-file="バッチファイルで変数にユーザーが指定した値を設定する基礎構文" data-lang="C"><code>set /p 変数名=表示するメッセージ</code></pre></div>



<h3 class="wp-block-heading">変数にユーザーが入力したものを代入する例文</h3>



<p>では以下のバッチファイルを作成してください</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="バッチファイルで変数にユーザーが指定した値を設定する例文"><code>@echo off

set /p hensu=文字を入力してください：
echo %hensu%

pause</code></pre></div>



<p>このバッチファイルを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-c" data-file="バッチファイルで変数にユーザーが指定した値を設定する例文の結果１" data-lang="C"><code>文字を入力してください：</code></pre></div>



<p>表示するメッセージの文字列が表示され、ユーザーの入力待ちになります。そこで何か文字を入力します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-c" data-file="バッチファイルで変数にユーザーが指定した値を設定する例文の結果２" data-lang="C"><code>文字を入力してください：ユーザーが入力した文字</code></pre></div>



<p>「ユーザーが入力した文字」と入力してエンターを押します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-c" data-file="バッチファイルで変数にユーザーが指定した値を設定する例文の結果３" data-lang="C"><code>文字を入力してください：ユーザーが入力した文字
ユーザーが入力した文字</code></pre></div>



<p>ユーザーが入力した文字が表示されました。</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-4-300x181.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-set-p/">【bat】バッチでset /pを使用し、ユーザーが入力したものを使用する</a>
						<span class="p-blogCard__excerpt">スクリプトでinputなど、対話的に入力した値を使用して運用行う事は沢山あります。 batファイルでユーザーが指定したものを使用したいです このような要望に応えます。 &#8230;</span>					</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">バッチファイルで変数や環境変数を表示して確認する方法</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="436" src="https://sugublog.org/wp-content/uploads/2021/11/DB_1114-2-1024x436.jpg" alt="変数を表示して確認" class="wp-image-4501" srcset="https://sugublog.org/wp-content/uploads/2021/11/DB_1114-2-1024x436.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/DB_1114-2-300x128.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/DB_1114-2-768x327.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/DB_1114-2.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h3 class="wp-block-heading">変数や環境変数を表示する基礎</h3>



<p><span class="swl-marker mark_orange"><strong><span class="swl-inline-color has-swl-deep-01-color">設定されている環境変数や指定した変数全てを表示</span></strong>して、確認する方法</span>は以下のコマンドです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-c" data-file="バッチファイルで変数や環境変数を確認する" data-lang="C"><code>set</code></pre></div>



<p><span class="swl-marker mark_orange"><strong><span class="swl-inline-color has-swl-deep-01-color">単体で変数や環境変数を確認</span></strong>するには「set」の後に変数名を記述します。</span></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-c" data-file="バッチファイルで変数や環境変数を確認する" data-lang="C"><code>set 変数名または環境変数名</code></pre></div>



<h3 class="wp-block-heading">元から代入されている便利な環境変数</h3>



<p><strong><span class="swl-inline-color has-swl-deep-01-color">元から代入されている便利な環境変数</span></strong>もあります。以下にまとめます。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>便利な環境変数</th><th>代入されている値</th></tr></thead><tbody><tr><td>%CD%</td><td>カレントディレクトリのパス</td></tr><tr><td>%TIME%</td><td>現在の時間</td></tr><tr><td>%DATE%</td><td>現在の年月日</td></tr><tr><td>%RANDOM%</td><td>0から32767までの乱数字</td></tr><tr><td>%ERRORLEVEL%</td><td>直前のコマンド結果に紐づいた値</td></tr></tbody></table><figcaption class="wp-element-caption">バッチファイルで元から入っている便利な環境変数一覧</figcaption></figure>



<h4 class="wp-block-heading">カレントディレクトリのパスが入っている環境変数</h4>



<p>「%CD%」を指定してみます。以下のバッチファイルを作成してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="hensu_set.bat"><code>@echo off

echo %CD%

pause</code></pre></div>



<p><span class="swl-marker mark_orange"><span class="swl-inline-color has-swl-deep-01-color">バッチファイルが入っているパス</span>が「%CD%」に入っています。</span>これを「echo」コマンドで表示しています。</p>



<p>このバッチファイルを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="hensu_set.batの実行結果"><code>C:\script\bat\14_変数</code></pre></div>



<p>バッチファイルのあるパスは以下のCドライブの配下の「script/bat/14_変数」にあります。</p>


<div class="wp-block-image is-style-border">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="271" src="https://sugublog.org/wp-content/uploads/2023/10/bat_set_cd-1024x271.png" alt="バッチファイルのhensu.batのパス" class="wp-image-5749" srcset="https://sugublog.org/wp-content/uploads/2023/10/bat_set_cd-1024x271.png 1024w, https://sugublog.org/wp-content/uploads/2023/10/bat_set_cd-300x79.png 300w, https://sugublog.org/wp-content/uploads/2023/10/bat_set_cd-768x203.png 768w, https://sugublog.org/wp-content/uploads/2023/10/bat_set_cd.png 1088w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">バッチファイルのhensu.batのパス</figcaption></figure>
</div>


<p class="has-border -border02">このパスがきちんと表示されています。</p>



<h4 class="wp-block-heading">現在の時間が入っている環境変数</h4>



<p>「%TIME%」を指定してみます。以下のバッチファイルを作成してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="hensu_set.bat"><code>@echo off

echo %TIME%

pause</code></pre></div>



<p><span class="swl-marker mark_orange"><span class="swl-inline-color has-swl-deep-01-color">現在の時間</span>が「%TIME%」に入っています。</span>これを「echo」コマンドで表示しています。</p>



<p>このバッチファイルを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="hensu_set.batの実行結果"><code>18:39:49.71</code></pre></div>



<p class="has-border -border02">現在の時刻が表示されました。</p>



<h4 class="wp-block-heading">現在の日にちが入っている環境変数</h4>



<p>「%DATE%」を指定してみます。以下のバッチファイルを作成してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="hensu_set.bat"><code>@echo off

echo %DATE%

pause</code></pre></div>



<p><span class="swl-marker mark_orange"><span class="swl-inline-color has-swl-deep-01-color">現在の日付</span>が「%DATE%」に入っています。</span>これを「echo」コマンドで表示しています。</p>



<p>このバッチファイルを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="hensu_set.batの実行結果"><code>2023/10/29</code></pre></div>



<p class="has-border -border02">現在の日付が表示されました。</p>



<p class="is-style-icon_pen">DATEやTIMEを使用してログファイルやディレクトリを作成する方法は以下の記事でまとめています。</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/time1-1-min-e1623600613499-300x190.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-date-time/">【bat】バッチで日付や時間を取得する方法！初心者向けで簡単に取得可能</a>
						<span class="p-blogCard__excerpt">バッチで日付や時間を取得できれば出来る事は多くなります。 例えば本日の日付と時間を組み合わせて、ログファイルやディレクトリを作成するなどです。 そうする事によ&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h4 class="wp-block-heading">ランダムな数字が入る環境変数</h4>



<p>「%RANDOM%」を指定してみます。以下のバッチファイルを作成してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="hensu_set.bat"><code>@echo off

echo %RANDOM%

pause</code></pre></div>



<p><span class="swl-marker mark_orange">0から32767までの数字がランダムに「%RANDOM%」変数に入ります。</span>これを「echo」コマンドで表示しています。</p>



<p>このバッチファイルを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="hensu_set.batの実行結果"><code>19541</code></pre></div>



<p class="has-border -border02">ランダムな数字が表示されました。</p>



<h4 class="wp-block-heading">直前のコマンド結果に紐づいた値が入る環境変数</h4>



<p>「%ERRORLEVEL%」を指定してみます。以下のバッチファイルを作成してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="hensu_set.bat"><code>@echo off

echo %ERRORLEVEL%

pause</code></pre></div>



<p><span class="swl-marker mark_orange"><span class="swl-inline-color has-swl-deep-01-color">直前のコマンド結果に紐づいた値</span>が「%ERRORLEVEL%」変数に入ります。</span>これを「echo」コマンドで表示しています。</p>



<p>直前のコマンド結果に紐づいた値の基本を以下のテーブルにまとめておきます。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>ERRORLEVEL</th><th>直前のコマンド結果に紐づいた値</th></tr></thead><tbody><tr><td>コマンド成功、初期値</td><td>0</td></tr><tr><td>コマンド失敗</td><td>1</td></tr><tr><td>コマンド自体がない</td><td>9009</td></tr></tbody></table><figcaption class="wp-element-caption">バッチファイルの基本的なERRORLEVELの値</figcaption></figure>



<p>このバッチファイルを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="hensu_set.batの実行結果"><code>0</code></pre></div>



<p class="has-border -border02">初期値の0が表示されました。</p>



<p class="is-style-icon_book">ERRORLEVELに関しては他のifコマンドやchoiceコマンドと併用して、実務でも使用できるバッチファイルを作成したりできますが、今回の変数とは関係ないので割愛します。</p>



<p>気になる方は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/09/randam_0915-7-300x169.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-errorlevel/">【bat】errorlevelの使い方を教えます。条件分岐する事も可能！</a>
						<span class="p-blogCard__excerpt">batファイルで「errorlevel」の基本的な使い方を教えます。 errorlevelにはどのような値が入っているのか、わからなくなってしまったりした経験はないでしょうか？ その&#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/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>


<h2 class="wp-block-heading">バッチファイルで変数や環境変数の値を置き換えする方法</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="560" src="https://sugublog.org/wp-content/uploads/2021/11/programing_1122-4-1024x560.jpg" alt="変数や環境変数を置き換えする" class="wp-image-4561" srcset="https://sugublog.org/wp-content/uploads/2021/11/programing_1122-4-1024x560.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/programing_1122-4-300x164.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/programing_1122-4-768x420.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/programing_1122-4.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h3 class="wp-block-heading">変数や環境変数の値を置き換えする基礎構文</h3>



<p><span class="swl-marker mark_orange"><strong><span class="swl-inline-color has-swl-deep-01-color">バッチファイルで変数や環境変数の値</span></strong>を、置き換えする方法の基礎</span>は以下です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-c" data-file="バッチファイルで変数や環境変数の値を置き換えする方法" data-lang="C"><code>set 変数名=%変数名:変更前の文字=変更後の文字%</code></pre></div>



<p>ややこしいですが<span class="swl-inline-color has-swl-deep-01-color">「変数名:」</span>に<span class="swl-inline-color has-swl-deep-01-color">「置き換え前=置き換え後」</span>を指定する。その後<span class="swl-inline-color has-swl-deep-01-color">%で囲む</span>。<span class="swl-inline-color has-swl-deep-01-color">それを変数に代入する</span>と考えるとわかりやすいです。</p>



<h3 class="wp-block-heading">変数や環境変数の値を置き換えする例文</h3>



<h4 class="wp-block-heading">変数や環境変数の値を置き換えする</h4>



<p>以下のバッチファイルを作成してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="バッチファイルで変数や環境変数の値を置き換えするファイル"><code>@echo off

set test=C:\test\
set test

set test=%test:C:=D:%
set test

pause</code></pre></div>



<p>「test」という変数に「C:\test\」というパスを代入しました。test変数を確認しています。</p>



<p>「set test=%test:C:=D:%」コマンドでCドライブをDドライブに変更しています。再度test変数を確認しています。</p>



<p>このバッチファイルを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>test=C:\test\
test=D:\test\</code></pre></div>



<p class="has-border -border02">CがDに変更している事がわかります。</p>



<h4 class="wp-block-heading">変数や環境変数の値を一部削除する</h4>



<p>以下のバッチファイルを作成してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="バッチファイルで変数や環境変数の値の一部を削除するファイル"><code>@echo off

set test=C:\test\
set test
set test=%test:C:=%
set test

pause</code></pre></div>



<p>「test」という変数に「C:\test\」というパスを代入するところまでは先程と同じです。test変数を確認しています。</p>



<p>「set test=%test:C:=%」コマンドで「C:」を空白に変更しています。再度test変数を確認しています。</p>



<p>このバッチファイルを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="バッチファイルで変数や環境変数の値の一部を削除するファイルの実行結果"><code>test=C:\test\
test=\test\</code></pre></div>



<p class="has-border -border02">C：が空白になり削除されている事がわかります。</p>



<p>指定する時に＊（アスタリスク）も使用できます。</p>



<p>以下のバッチファイルを作成してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="バッチファイルで変数や環境変数の値の一部を*で指定して削除するファイル"><code>@echo off

set test=C:\test\
set test
set test=%test:*st=east%
set test

pause</code></pre></div>



<p>「test」という変数に「C:\test\」というパスを代入するところまでは先程と同じです。test変数を確認しています。</p>



<p>「set test=%test:*st\=east%」コマンドで「st\」までの文字を「east」に変更しています。再度test変数を確認しています。</p>



<p>このバッチファイルを実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="バッチファイルで変数や環境変数の値の一部を*で指定して削除するファイルの実行結果"><code>test=\test\
test=east</code></pre></div>



<p class="has-border -border02">「st\」までの文字が全てが「east」に変更された事がわかります。</p>



<h2 class="wp-block-heading">バッチファイルで変数や環境変数の値から文字列を切り出しする方法</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="586" src="https://sugublog.org/wp-content/uploads/2021/11/DB_1103-3-1024x586.jpg" alt="変数や環境変数の一部を取得" class="wp-image-4332" srcset="https://sugublog.org/wp-content/uploads/2021/11/DB_1103-3-1024x586.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-3-300x172.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-3-768x439.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/DB_1103-3.jpg 1191w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h3 class="wp-block-heading">変数や環境変数の値から文字列を切り出しする基礎構文</h3>



<p><span class="swl-marker mark_orange"><strong><span class="swl-inline-color has-swl-deep-01-color">バッチファイルで変数や環境変数の値</span></strong>から、<span class="swl-inline-color has-swl-deep-01-color">一部を取得する方法</span>の基礎</span>は以下です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-c" data-file="バッチファイルで変数や環境変数の値の一部を取得する方法" data-lang="C"><code>set 変数名=%変数名:~取得開始ずらす,範囲を指定（省略可能）%</code></pre></div>



<p>前工程の置き換えと同じ考えで「変数名:」に<span class="swl-inline-color has-swl-deep-01-color">「取得開始ずらす,範囲」</span>を指定する。その後%で囲む。それを変数に代入すると考えるとわかりやすいです。</p>



<p class="is-style-icon_announce">※取得開始位置は「~」を付けるのを忘れない事</p>



<h3 class="wp-block-heading">変数や環境変数の値から一部を取得する例文</h3>



<h4 class="wp-block-heading">変数の先頭を6ずらして2つ文字を取得する</h4>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="変数の先頭を6ずらして2つ文字を取得するファイル"><code>@echo off

set test=123456789
set test=%test:~6,2%
echo %test%

pause</code></pre></div>



<p>test変数に「123456789」を代入しています。</p>



<p>「set test=%test:~6,2%」で開始位置を6ずらして、そこから2文字を取得するようなコマンドです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="変数の先頭を6ずらして2つ文字を取得するファイルの実行結果"><code>78</code></pre></div>



<p class="has-border -border02">最初の「1」か6ずらして2文字なので、「78」の文字が表示されている事がわかります。</p>



<h4 class="wp-block-heading">変数の先頭を6ずらして全ての文字を取得する</h4>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="変数の先頭を6ずらして全ての文字を取得するファイル"><code>@echo off

set test=123456789
set test=%test:~6%
echo %test%

pause</code></pre></div>



<p>再程と同じでtest変数に「123456789」を代入しています。</p>



<p>「set test=%test:~6%」で開始位置を6ずらして、範囲は省略しているパターンです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="変数の先頭を6ずらして全ての文字を取得するファイルの実行結果"><code>789</code></pre></div>



<p class="has-border -border02">最初の「1」か6ずらして最後の文字までなので、「789」の文字が表示されている事がわかります。</p>



<h4 class="wp-block-heading">変数の末尾7番目から全ての文字を取得する</h4>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="変数の末尾7番目から全ての文字を取得するファイル"><code>@echo off

set test=123456789
set test=%test:~-7%
echo %test%

pause</code></pre></div>



<p>再程と同じでtest変数に「123456789」を代入しています。</p>



<p class="is-style-icon_info"><span class="swl-inline-color has-swl-deep-01-color">開始位置</span>を末尾から指定する場合は「-」をつければOKです。</p>



<p>「set test=%test:~-7%」で末尾から開始位置を7ずらして、範囲は省略しているパターンです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="変数の先頭を6ずらして全ての文字を取得するファイルの実行結果"><code>3456789</code></pre></div>



<p class="has-border -border02">末尾から7ずらして最後の文字までなので、「3456789」の文字が表示されている事がわかります。</p>



<h4 class="wp-block-heading">変数の先頭を2ずらして末尾5番目までを除く文字を取得する</h4>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="変数の先頭を2ずらして末尾5番目までを除く文字を取得するファイル"><code>@echo off

set test=123456789
set test=%test:~2,-5%
echo %test%

pause</code></pre></div>



<p>再程と同じでtest変数に「123456789」を代入しています。</p>



<p class="is-style-icon_info"><span class="swl-inline-color has-swl-deep-01-color">範囲指定</span>で「-」を付けた場合は、その数字だけ省くことになります。</p>



<p>「set test=%test:2,-5%」で先頭から2ずらして、末尾から5番目までの文字を省いた文字列を取得します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="変数の先頭を2ずらして末尾5番目までを除く文字を取得するファイルの実行結果"><code>34</code></pre></div>



<p class="has-border -border02">先頭から2すらして末尾から5文字を省いた文字列を表示しているので、「34」の文字が表示されている事がわかります。</p>



<p>このように変数の文字列から一部を切り出しする事も可能です。</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/money002-e1626536268834-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-string-extraction/">【bat】バッチで文字列を切り出して抽出する方法！変数を使用します！</a>
						<span class="p-blogCard__excerpt">batファイルで文字列を切り出して抽出して使用したいです！ 文字を切り出して自由に変更したいです！何かいい方法はないでしょうか？ そういった疑問に現役エンジニアの&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h3 class="wp-block-heading">変数や環境変数の値から一部を取得する時のエラーと解決法</h3>



<p><span class="swl-marker mark_yellow"><strong><span class="swl-inline-color has-swl-deep-01-color">バッチファイルで変数や環境変数の値</span></strong>から一部を取得する時に、<span class="swl-bg-color has-swl-deep-01-background-color">上手くいかない時</span>の見る所はやはりココ</span></p>



<p>下のバッチファイルを作成してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="バッチファイルで変数や環境変数の値から一部を取得する時のエラーファイル"><code>@echo off

set test=123456789
set test=%test:2,-5%
echo %test%

pause</code></pre></div>



<p>再程と同じでtest変数に「123456789」を代入しています。</p>



<p>「set test=%test:2,-5%」で先頭から2ずらして、末尾から5番目までの文字を省いた文字列を取得しようとしています。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="バッチファイルで変数や環境変数の値から一部を取得する時のエラーファイルの実行結果"><code>test:2,-5</code></pre></div>



<p>変数に指定した文字で「%」が省かれた文字列が表示されており、想定通りの結果ではありません。</p>



<p class="is-style-big_icon_check"><strong>バッチファイル</strong>の<strong><span class="swl-inline-color has-swl-deep-01-color">失敗の原因</span></strong>は、<strong>開始位置指定の時の「~」を忘れている事</strong>になります。</p>



<p>開始位置にはしっかり「~」をつけましょう。</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】バッチファイルでの変数や環境変数の扱い方のまとめ</h2>


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


<h3 class="wp-block-heading">変数や環境変数を設定する基礎</h3>



<p>バッチファイルで変数を設定するやり方の基礎は以下です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-c" data-file="バッチファイルで変数を設定する基礎" data-lang="C"><code>set 変数名=変数の値</code></pre></div>



<p>変数に入れた値を展開するには、以下のように変数名を「%」で囲って記述します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-c" data-file="バッチファイルで変数を展開する基礎" data-lang="C"><code>%変数名%</code></pre></div>



<h3 class="wp-block-heading">変数に値を入れて表示する時のエラーなど</h3>



<p>バッチファイルの変数で<span class="swl-marker mark_yellow"><span class="swl-bg-color has-swl-deep-01-background-color">エラー</span>が出たり思い通りの結果にならなかった場合に見る場所</span></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>文字を「&#8221;」で囲っている</li>



<li>=の前後に空白が入っている</li>
</ul>
</div></div>



<h3 class="wp-block-heading">変数に計算結果を代入する基礎</h3>



<p>バッチファイルで変数に計算結果を代入する方法の基礎は以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-c" data-file="バッチファイルで変数に計算結果を代入する方法" data-lang="C"><code>set /a 変数名=計算式</code></pre></div>



<p class="has-border -border02">「/a」オプションをつけると計算結果を代入する事が可能です。</p>



<p>「=」の前に演算子を付ける事で、簡単に変数の値をどんどん計算していく事が可能。</p>



<h3 class="wp-block-heading">変数にユーザーが入力したものを代入する基礎</h3>



<p><strong><span class="swl-inline-color has-swl-deep-01-color">ユーザーが入力したものを変数に入れたい場合</span></strong>は<span class="swl-marker mark_orange">「/p」オプションをつけると簡単にできます。</span></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-c" data-file="バッチファイルで変数にユーザーが指定した値を設定する基礎構文" data-lang="C"><code>set /p 変数名=表示するメッセージ</code></pre></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/07/PC007-4-300x181.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-set-p/">【bat】バッチでset /pを使用し、ユーザーが入力したものを使用する</a>
						<span class="p-blogCard__excerpt">スクリプトでinputなど、対話的に入力した値を使用して運用行う事は沢山あります。 batファイルでユーザーが指定したものを使用したいです このような要望に応えます。 &#8230;</span>					</div>
				</div>
			</div>
		</div>


<h3 class="wp-block-heading">変数や環境変数を表示する基礎</h3>



<p><span class="swl-marker mark_orange"><strong><span class="swl-inline-color has-swl-deep-01-color">設定されている環境変数や指定した変数全てを表示</span></strong>して、確認する方法</span>は以下のコマンドです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-c" data-file="バッチファイルで変数や環境変数を確認する" data-lang="C"><code>set</code></pre></div>



<p><span class="swl-marker mark_orange"><strong><span class="swl-inline-color has-swl-deep-01-color">単体で変数や環境変数を確認</span></strong>するには「set」の後に変数名を記述します。</span></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-c" data-file="バッチファイルで変数や環境変数を確認する" data-lang="C"><code>set 変数名または環境変数名</code></pre></div>



<h3 class="wp-block-heading">元から代入されている便利な環境変数</h3>



<p><strong><span class="swl-inline-color has-swl-deep-01-color">元から代入されている便利な環境変数</span></strong>もあります。以下にまとめます。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>便利な環境変数</th><th>代入されている値</th></tr></thead><tbody><tr><td>%CD%</td><td>カレントディレクトリのパス</td></tr><tr><td>%TIME%</td><td>現在の時間</td></tr><tr><td>%DATE%</td><td>現在の年月日</td></tr><tr><td>%RANDOM%</td><td>0から32767までの乱数字</td></tr><tr><td>%ERRORLEVEL%</td><td>直前のコマンド結果に紐づいた値</td></tr></tbody></table><figcaption class="wp-element-caption">バッチファイルで元から入っている便利な環境変数一覧</figcaption></figure>


<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/time1-1-min-e1623600613499-300x190.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-date-time/">【bat】バッチで日付や時間を取得する方法！初心者向けで簡単に取得可能</a>
						<span class="p-blogCard__excerpt">バッチで日付や時間を取得できれば出来る事は多くなります。 例えば本日の日付と時間を組み合わせて、ログファイルやディレクトリを作成するなどです。 そうする事によ&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h3 class="wp-block-heading">変数や環境変数の値を置き換えする基礎構文</h3>



<p><span class="swl-marker mark_orange"><strong><span class="swl-inline-color has-swl-deep-01-color">バッチファイルで変数や環境変数の値</span></strong>を、置き換えする方法の基礎</span>は以下です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-c" data-file="バッチファイルで変数や環境変数の値を置き換えする方法" data-lang="C"><code>set 変数名=%変数名:変更前の文字=変更後の文字%</code></pre></div>



<p><span class="swl-inline-color has-swl-deep-01-color">「変数名:」</span>に<span class="swl-inline-color has-swl-deep-01-color">「置き換え前=置き換え後」</span>を指定する。その後<span class="swl-inline-color has-swl-deep-01-color">%で囲む</span>。<span class="swl-inline-color has-swl-deep-01-color">それを変数に代入する</span>と考えるとわかりやすい。</p>



<h3 class="wp-block-heading">変数や環境変数の値から一部を取得する基礎構文</h3>



<p><span class="swl-marker mark_orange"><strong><span class="swl-inline-color has-swl-deep-01-color">バッチファイルで変数や環境変数の値</span></strong>から、<span class="swl-inline-color has-swl-deep-01-color">一部を取得する方法</span>の基礎</span>は以下です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-c" data-file="バッチファイルで変数や環境変数の値の一部を取得する方法" data-lang="C"><code>set 変数名=%変数名:~取得開始ずらす,範囲を指定（省略可能）%</code></pre></div>



<p>「変数名:」に<span class="swl-inline-color has-swl-deep-01-color">「取得開始ずらす,範囲」</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/07/money002-e1626536268834-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-string-extraction/">【bat】バッチで文字列を切り出して抽出する方法！変数を使用します！</a>
						<span class="p-blogCard__excerpt">batファイルで文字列を切り出して抽出して使用したいです！ 文字を切り出して自由に変更したいです！何かいい方法はないでしょうか？ そういった疑問に現役エンジニアの&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h3 class="wp-block-heading">変数や環境変数の値から一部を取得する時のエラーと解決法</h3>



<p><span class="swl-marker mark_yellow"><strong><span class="swl-inline-color has-swl-deep-01-color">バッチファイルで変数や環境変数の値</span></strong>から一部を取得する時に、<span class="swl-bg-color has-swl-deep-01-background-color">上手くいかない時</span>の見る所は</span>、取得開始位置で「~」を付けるのを忘れない事</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sugublog.org/bat-hensu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
