【コマンドプロンプト】改行コード CR、LF、CRLFの出力とテキスト書き出し。
仕事でバッチファイルを使っているとログ出力が非常に大事になる。
細かくログを出すことによって、エラーを起こした処理をすぐに解析することができるから僕としては、基本的に一つのコマンドを実行するごとに、ログを出力することが理想的だと思うが、時にはバッチの見栄えを気にしたりして、変数にログを書き込んで最終的にログ出力なんてこともある。
変数の中で改行コードを入れる処理。
@ECHO OFF setlocal enabledelayedexpansion REM ----------------------------------------------------- REM 改行コード(CR) REM ----------------------------------------------------- FOR /f "delims=" %%i IN ('cmd /u /c ECHO;名') DO ( SET CR=%%i SET CR=!CR:~0,1! ) REM ----------------------------------------------------- REM 改行コード(LF) REM ----------------------------------------------------- SET LF=^ REM このコメント文は上につめない。改行コードLFは「^改行改行改行」で変数としてセットされているため REM ----------------------------------------------------- REM 改行コードごと(CR、LF、CRLF)に変数へセット REM ----------------------------------------------------- SET CR_TEXT=CRで改行!CR!CRで改行 SET LF_TEXT=LFで改行!LF!LFで改行 SET CRLF_TEXT=CRLFで改行!CR!!LF!CRLFで改行 REM ----------------------------------------------------- REM ECHOで表示 REM ----------------------------------------------------- ECHO -- CR ------------ ECHO !CR_TEXT! ECHO -- LF ------------ ECHO !LF_TEXT! ECHO -- CRLF ---------- ECHO !CRLF_TEXT! REM ----------------------------------------------------- REM テキスト出力 REM ----------------------------------------------------- ECHO !CR_TEXT! > CR.txt ECHO !LF_TEXT! > LF.txt ECHO !CRLF_TEXT! > CRLF.txt pause
コピペの際の注意事項
下記の画像のように、そのままコピペをするとLFの改行コードのところにスペースが入ってしまうため、削ること。
実行結果
29~41行目でECHOコマンドで各改行コードを表示しているが、CR改行コードのみうまく表示されていない。
バッチで出力したテキストファイルの結果
1.CR改行コード
2.CRLF改行コード
3.LF改行コード
実行結果ではCR改行コードのみ、うまく表示されていないが、出力したテキストファイルを開くとCRLF、LFと同様に問題なく改行されている。
Adsense
関連記事
-
-
【コマンドプロンプト】cmdでSQLの結果を変数に取得する方法
力技の取得方法をご紹介。というかメモ。 題名には偉そうに書きましたが…なかなか良い方法が見つか
-
-
【コマンドプロンプト】前日日付、月末日付を変数に取得するバッチ。うるう年対応
コマンドプロンプトを使って前日、指定日、月末日付を変数に取得する。 「SearchDay」に入
-
-
【コマンドプロンプト】32bit以上の計算をする方法(引き算)
コマンドプロンプトで計算するときに「Set /a ~」で計算式を使うと符号付32bitの間でしか計算
-
-
【コマンドプロンプト】バッチでセクション付のINIファイルの読み込み
バッチファイルでINIファイルから値を読み込む 1.INIファイルの用意 以下の「バッチファイル
-
-
【コマンドプロンプト】バッチファイルでCSVを1行ずつ処理をする方法
僕はプログラマーではないので、あまりカッコイイプログラムはかけませんが、CSVファイルを1行ずつ、バ
-
-
【コマンドプロンプト】net use で共有フォルダに接続できない場合。
システム エラー 1219 が発生しました。 同じユーザーによる、サーバー
-
-
【コマンドプロンプト】完成版!cmdでSQLの結果を変数に取得
以前、 【コマンドプロンプト】cmdでSQLの結果を変数に取得する方法 を書きましたが、
-
-
【コマンドプロンプト】前後の不要なスペースの除去(取り除く)
コマンドプロンプトのFOR文とか使って変数に取得しようとすると、取得元のコマンドとかファイルによって