<?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%88%87%E3%82%8A%E5%87%BA%E3%81%97/feed/" rel="self" type="application/rss+xml" />
	<link>https://sugublog.org</link>
	<description>ブログ運営について発信中</description>
	<lastBuildDate>Thu, 07 Mar 2024 01:43:16 +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>【bat】バッチで文字列を切り出して抽出する方法！変数を使用します！</title>
		<link>https://sugublog.org/bat-string-extraction/</link>
					<comments>https://sugublog.org/bat-string-extraction/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[suguru]]></dc:creator>
		<pubDate>Wed, 29 Nov 2023 16:53:58 +0000</pubDate>
				<category><![CDATA[bat]]></category>
		<category><![CDATA[切り出し]]></category>
		<category><![CDATA[文字列]]></category>
		<guid isPermaLink="false">https://sugublog.org/?p=6030</guid>

					<description><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/07/money002-e1626536268834-1024x683.jpg" class="webfeedsFeaturedVisual" /></p>batファイルで文字列を切り出して抽出して使用したいです！ そういった疑問に現役エンジニアの筆者が答えていきます。 文字列を切り出し使用できれば、不要な文字を省いたりできて便利です。 より自分のやりたい事ができるbatフ [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/07/money002-e1626536268834-1024x683.jpg" class="webfeedsFeaturedVisual" /></p>
<p><strong>batファイル</strong>で<strong><span class="swl-inline-color has-swl-deep-01-color">文字列</span></strong>を<strong><span class="swl-inline-color has-swl-deep-01-color">切り出して</span></strong>抽出して使用したいです！</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" 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/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">batファイルで悩んでいる人</span></div><div class="c-balloon__body -thinking -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>そういった疑問に現役エンジニアの筆者が答えていきます。</p>


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


<p class="is-style-icon_good"><strong>文字列</strong>を<strong>切り出し</strong>使用できれば、不要な文字を省いたりできて便利です。</p>



<p>より自分のやりたい事ができるbatファイルになることでしょう！</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">batで文字列を切り出して抽出する方法</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/money003-1024x683.jpg" alt="切り出し" class="wp-image-3634"/></figure>
</div>


<h3 class="wp-block-heading">batで文字列を切り出して抽出する基礎構文</h3>



<p><span class="swl-marker mark_orange"><span class="swl-inline-color has-swl-deep-01-color">batファイルで文字列を切り出して一部を取得する方法</span>の基礎</span>は以下です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-c" data-file="文字列を切り出して抽出するバッチ" data-lang="C"><code>%変数名:~取得開始位置,範囲を指定（省略可能）%</code></pre></div>



<p>変数を使用します。%変数%で変数を展開します。変数の右に「:~」をつけて<span class="swl-inline-color has-swl-deep-01-color">「取得開始位置,範囲」</span>を指定します。</p>



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



<p class="is-style-icon_info">※取得開始位置は「~」を付けるのを忘れない事</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-8-1024x683.jpg" alt="切り出し" class="wp-image-3602"/></figure>
</div>


<h4 class="wp-block-heading">変数の先頭を3ずらして以降の文字列を切り出し</h4>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="変数の先頭を3ずらして文字列を切り出し"><code>@echo off
set moji=ABCDEFG
echo %moji:~3%
pause</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/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>moji変数に「ABCDEFG」を代入しています。</p>



<p>「%moji:~3%」で開始位置を3ずらして、範囲は省略しています。</p>



<p>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>


<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="変数の先頭を3ずらして文字列を切り出し結果"><code>DEFG</code></pre></div>



<p class="has-border -border02 is-style-big_icon_check"><strong><span class="swl-inline-color has-swl-deep-01-color">3つめ以降からの文字列</span></strong>が、切り出しされている事がわかります。</p>



<h4 class="wp-block-heading">変数の先頭を3ずらして2つの文字列を切り出し</h4>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="変数の先頭を3ずらして2つ文字列を切り出し"><code>@echo off
set moji=ABCDEFG
echo %moji:~3,2%
pause</code></pre></div>



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



<p>batファイルの実行結果は次のようになりました。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="変数の先頭を3ずらして2つ文字列を切り出した結果"><code>DE</code></pre></div>



<p class="has-border -border02"><strong><span class="swl-inline-color has-swl-deep-01-color">3つめ以降から2つの文字列</span></strong>が、切り出しされている事がわかります。</p>



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



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="変数の末尾3番目から全ての文字列を切り出し"><code>@echo off
set moji=ABCDEFG
echo %moji:~-3%
pause</code></pre></div>



<p>「%moji:~-3%」で開始位置を末尾3番目から以降全ての文字列を切り出しています。</p>



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



<p>batファイルの実行結果は次のようになりました。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="変数の末尾を3ずらして以降全ての文字列を切り出した結果"><code>EFG</code></pre></div>



<p class="has-border -border02"><strong><span class="swl-inline-color has-swl-deep-01-color">末尾から3ずらして最後の文字まで文字列</span></strong>が、切り出しされている事がわかります。</p>



<h4 class="wp-block-heading">変数の先頭を2ずらして末尾から3つまでの文字列を切り出し</h4>



<p>「%moji:~2,-3%」で開始位置を3ずらして、末尾から3つまでの文字列を切り出しています。</p>



<p>batファイルの実行結果は次のようになりました。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="変数の先頭を3ずらして2つ文字列を切り出した結果"><code>CD</code></pre></div>



<p class="has-border -border02"><strong><span class="swl-inline-color has-swl-deep-01-color">2つめ以降から末尾3つまでの文字列</span></strong>が、切り出しされている事がわかります。</p>



<p>同じ様に文字列を思い通りに切り出ししてみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>@echo off
set moji=ABCDEFG
echo %moji:~2,-3%
echo %moji:~2,-2%
echo %moji:~2,-1%
pause</code></pre></div>



<p>batファイルの実行結果は次のようになりました。</p>



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



<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/06/shutterstock_1433996435-min-1024x683.jpg" alt="エラー" class="wp-image-2885"/></figure>
</div>


<p><span class="swl-marker mark_yellow"><strong><span class="swl-inline-color has-swl-deep-01-color">batファイルで変数</span></strong>から一部の文字列を切り出しする時に、<span class="swl-bg-color has-swl-deep-01-background-color">上手くいかない時</span>の見る所はやはりココ</span></p>



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



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="batファイルで変数や環境変数の値から一部を取得する時のエラーファイル"><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="変数から文字列を切り取りするbatファイルの実行結果"><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>



<h2 class="wp-block-heading">変数からある文字列以外を切り出しする方法</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="650" src="https://sugublog.org/wp-content/uploads/2021/06/kaiketsu-3-min-1024x650.jpg" alt="切り出し" class="wp-image-2894"/></figure>
</div>


<p>では次は<span class="swl-marker mark_orange"><strong><span class="swl-inline-color has-swl-deep-01-color">ある文字列以外</span></strong>を切り出しするbatファイル</span>です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>@echo off
set moji=ABCDEFG
echo %moji:C=%
pause</code></pre></div>



<p>「%moji:C=%」でCを空白に置き換える事で、指定したC以外の文字列を切り出しが可能になります。</p>



<p>batファイルの実行結果は次のようになりました。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="変数の先頭を3ずらして2つ文字列を切り出した結果"><code>ABDEFG</code></pre></div>



<p class="has-border -border02"><strong><span class="swl-inline-color has-swl-deep-01-color">指定した文字列以外</span></strong>が切り出しされている事がわかります。</p>



<p class="is-style-icon_pen">その他にも変数を扱えれば面白い事が可能です。詳しくは以下の記事にまとめています。</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>


<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で文字列を切り出して抽出する方法</h2>



<p>今回行ったbatでの文字列切り出し例を下の表にまとめておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>shellの書き方の説明</th><th>shellの書き方</th><th>開始位置</th><th>範囲</th><th>切り出し文字</th><th>結果</th></tr></thead><tbody><tr><td>変数指定</td><td>変数</td><td>&#8211;</td><td>&#8211;</td><td>&#8211;</td><td>ABCDEFG</td></tr><tr><td>展開</td><td>%変数%</td><td>&#8211;</td><td>&#8211;</td><td>全て</td><td>ABCDEFG</td></tr><tr><td>開始位置指定</td><td>%変数:~3%</td><td>3</td><td>無し</td><td>3番目から最後まで</td><td>DEFG</td></tr><tr><td>開始位置と個数指定</td><td>%変数:~3,2%</td><td>3</td><td>2個</td><td>3番目から2個</td><td>DE</td></tr><tr><td>開始位置は末尾から</td><td>%変数~-3%</td><td>-3</td><td>無し</td><td>末尾3番目から最後まで</td><td>EFG</td></tr><tr><td>開始位置指定、範囲は末尾</td><td>%変数~2,-3%</td><td>2</td><td>末尾3つまで</td><td>2番目から末尾3つまで</td><td>CD</td></tr></tbody></table><figcaption class="wp-element-caption">シェルスクリプト例のまとめ</figcaption></figure>



<p class="is-style-icon_info">※取得開始位置は「~」を付けるのを忘れない事</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sugublog.org/bat-string-extraction/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
