<?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>bat log &#8211; スグブログ</title>
	<atom:link href="https://sugublog.org/tag/bat-log/feed/" rel="self" type="application/rss+xml" />
	<link>https://sugublog.org</link>
	<description>ブログ運営について発信中</description>
	<lastBuildDate>Sun, 25 Feb 2024 14:21:43 +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>bat log &#8211; スグブログ</title>
	<link>https://sugublog.org</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【bat】バッチでログの出力方法をご紹介！実行結果などを出力する</title>
		<link>https://sugublog.org/bat-log/</link>
					<comments>https://sugublog.org/bat-log/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[suguru]]></dc:creator>
		<pubDate>Sun, 25 Feb 2024 14:21:42 +0000</pubDate>
				<category><![CDATA[bat]]></category>
		<category><![CDATA[bat log]]></category>
		<guid isPermaLink="false">https://sugublog.org/?p=6423</guid>

					<description><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/09/moving_0926-2-1024x683.jpg" class="webfeedsFeaturedVisual" /></p>bat（バッチ）ファイルで実行結果をログに出力しませんか？ 日時処理などでこけていた場合に、どこで失敗したか確認する時にログ出力は必須です。 また日時や時間を使用してログファイル名を変えたいと思った事はないでしょうか？  [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/09/moving_0926-2-1024x683.jpg" class="webfeedsFeaturedVisual" /></p>
<p><strong><span class="swl-inline-color has-swl-deep-01-color">bat（バッチ）ファイル</span></strong>で実行結果を<strong>ログ</strong>に<strong>出力</strong>しませんか？</p>



<p>日時処理などでこけていた場合に、どこで失敗したか確認する時に<strong>ログ出力は必須</strong>です。</p>



<p>また日時や時間を使用してログファイル名を変えたいと思った事はないでしょうか？</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>そんなエンジニアの悩みに、現役エンジニアの筆者が答えていきます。</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="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">bat（バッチ）でログの出力方法</h2>


<div class="wp-block-image is-style-photo_frame">
<figure class="aligncenter size-large"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-7-1024x1024.jpg" alt="パソコン教室" class="wp-image-4810"/></figure>
</div>


<h3 class="wp-block-heading">bat（バッチ）でログの出力方法の基本</h3>



<p><strong><span class="swl-inline-color has-swl-deep-01-color">bat（バッチ）でログの出力方法</span></strong>はリダイレクトを使用します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="log出力.bat"><code>echo 処理STEP1完了しました！ &gt;&gt; log.log</code></pre></div>



<p>「&gt;」は上書き保存し「&gt;&gt;」は追記になります。</p>



<p>これでbatファイルと同階層にlog.logファイルが出力されます。</p>



<p>logファイルの中身を確認してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="log.logの中身"><code>処理STEP1完了しました！</code></pre></div>



<p class="has-border -border02">batファイルでログの出力ができています。</p>



<h3 class="wp-block-heading">ログに日付と時間を記入する</h3>



<p>今度は<span class="swl-marker mark_orange">ログの内容に日付と時間を入れてみます。</span></p>



<p>batでもともと使用できる変数に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>


<p>batで変数を展開する時は前後に「%」をつけます。dateなら「%date%」となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="log出力.bat" data-line="2"><code>echo %date% %time% 処理STEP1完了しました！ &gt;&gt; log.log</code></pre></div>



<p>logファイルの中身を確認してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="log.logの中身"><code>処理STEP1完了しました！ 
2024/02/25 15:08:46.56 処理STEP1完了しました！</code></pre></div>



<p class="has-border -border02">先程のファイル内容に、日付と時間付きログが追加されているのがわかります。</p>



<p class="is-style-icon_info">このようにbatの処理ステップごとに日付と時間を付けてログ出力すれば、どこで処理が失敗したか、何時に処理が行われているかがわかり、エラーの原因究明に一役かうことがあるかもしれません。</p>



<h3 class="wp-block-heading">ログのパスが絶対パスにて書かれている場合の注意点</h3>



<p>ログ出力のパスは絶対パスで指定する事が決まっている環境もあると思います。そんな時にbatファイル流用しようとすればパスもいちいち修正しなければいけません。</p>



<p>そうならない為にもbatのパスを変数で指定しておきます。「%~dp0\」で取得することが可能です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="log出力.bat" data-line="2"><code>echo %date% %time% 処理STEP1完了しました！ &gt;&gt; %~dp0\log.log</code></pre></div>



<p>このbatファイルを実行します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="log.logの中身"><code>処理STEP1完了しました！ 
2024/02/25 15:08:46.56 処理STEP1完了しました！
2024/02/25 15:23:12.49 STEP1完了しました！ </code></pre></div>



<p class="has-border -border01">絶対パスでも同じ様に追記されています。</p>



<h2 class="wp-block-heading">bat（バッチ）でログファイル名を日付や時間にして出力する</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="664" src="https://sugublog.org/wp-content/uploads/2021/11/HDD_1107-3-1-1024x664.jpg" alt="ログ出力" class="wp-image-4363" srcset="https://sugublog.org/wp-content/uploads/2021/11/HDD_1107-3-1-1024x664.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/HDD_1107-3-1-300x195.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/HDD_1107-3-1-768x498.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/HDD_1107-3-1.jpg 1199w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="is-style-big_icon_check">今度は日付や時間で<strong>ログファイル名</strong>を変更したいと思いませんか？</p>



<p>そうすれば日付や時間ごとにログファイルを分ける事ができて、後から見やすくなります。</p>



<p>先程と同じように日付と時間を変数にて取得して、ログ出力してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>echo %date% %time% STEP1完了しました！ &gt;&gt; %~dp0\%date%%time%log.log</code></pre></div>



<p>このbatを実行します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。</code></pre></div>



<p class="is-style-big_icon_batsu">エラーがでてログ出力できていません。</p>



<h3 class="wp-block-heading">ログファイル名を日付や時間にするとエラーが起こる原因と対処法</h3>



<p>batでログファイル名を日付や時間にするとエラーが起こる原因は、<strong><span class="swl-inline-color has-swl-deep-01-color">ファイル名につける事の出来ない文字が含まれているから</span></strong>です。先程のログ出力したファイルを見てみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="log.logの中身"><code>処理STEP1完了しました！ 
2024/02/25 15:08:46.56 処理STEP1完了しました！
2024/02/25 15:23:12.49 STEP1完了しました！ </code></pre></div>



<p class="is-style-big_icon_caution">dateで取得した日付の「/」が使用できません。timeでは「:」が使用できません。</p>



<p>ですので%date%と%time%で取得した、使用できない文字列を修正する必要があります。</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>



<p>修正したbatファイルが以下です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>set time1=%time::=%
echo %date% %time% STEP1完了しました！ &gt;&gt; %~dp0\%date:/=%-%time1:~0,6%.log</code></pre></div>



<p>時間の「:」を削除して変数「time1」にいれました。（set time1=%time::=%）</p>



<p>time1の最初の文字から6文字目までを取得するのが（%time1:~0,6%）</p>



<p>日付の「/」を削除するコマンドが（%date:/=%）</p>



<p class="is-style-icon_book">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/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>ではこの修正したbatファイルを実行して、ログ出力を行います。</p>



<p class="has-border -border02">batと同階層に「日付-時間6桁.log」ファイルが作成されて、中身に「日付 時間 STEP1完了しました！」とログ出力できています。</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>batでログ出力する時に使用してみてください。</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/bat-log/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
