るきふぃえる's memo

るきふぃえるのメモ

*

【MS-DOS】ファイル内の文字列を1行ずつ読み込んで、読み込んだ文字列から切り出す

   

Code-001

geralt / Pixabay

 

見つからなかった・・・

いろいろ調べたけど、カンマ区切りやスペース区切りなどのデータを分割して抽出する情報はあったけど

区切りのない文字列から、特定部分を抽出するバッチがなかったので考えてみました。(見つけられなかっただけかも^^;)

 

ファイル内の文字列を1行ずつ読み込む

以下のようなデータファイルがあります。

※データのファイル名は「data.txt」とします。

1行ずつ読み込んで「data_out.txt」に書き出すバッチを作ります。

当たり前ですが、実行すると、1行ずつ読み込んで、1行ずつ書き出すので「data.txt」と同じになります。

 

文字列から必要な部分を切り出す

今回は、「201511xx」の「11xx」の部分が必要なので、「%str:~4,4%」と記述します。

 

1行ずつ読み込んで、読み込んだ文字列から必要部分を切り出す

上記の2つを合わせて完成です。

 

少し説明。

切り出しの部分をサブルーチンにしてます。

forコマンドで1行ずつ読み込んだデータをサブルーチンに渡して(call :sub “%%a”)処理(切り出し)させて、

結果を戻して「data_out.txt」に書き出してます。

 

まとめ

 

forコマンドって奥が深いね。

サブルーチンを変えれば、「1行ずつ読み込んで○○○○させて、書き出す」って応用がきくと思います。

 

 - MS-DOS

QR Code Business Card