【初心者バッチファイル】ファイル内の文字列抜き出し方法


スポンサーリンク

ファイル内のテキスト一覧から指定した文字数以下の文字列を抜き出す方法

こんにちは。thimiです。

今日は、ファイル内の文字列を抽出する方法です。

前回作成したファイル名のリスト一覧から、指定した文字数以下を

抜き出してみます。

https://thimi-lifehack.com/create_filelist/




Extract.bat 
@echo offコマンドプロンプトへ非表示
rem 「Extract_list.csv」ファイルが既に存在する場合は削除rem:コメント(覚書記載)
if exist Extract_list.csv del Extract_list.csv既にファイルがある場合は
一度削除する処理
for /F "tokens=* delims== eol=@ " %%l IN ('('findstr /R "^%1" filel_ist.csv') do (For文で繰り返し処理を実施
filel_ist.csvファイルの先頭行から正規表現で行単位で文字を取得
set string=%%lstringに取得した文字を保存
call:subsubを呼び出し
)
exit
:sub:sub内容
echo %string:~-11,11%>>Extract_list.csvstringの中身の後ろから数えて11番目から、11文字を抜き出してExtract_list.csvに書き出し

バッチファイルの内容を簡単に説明します。

「for」コマンド

ループ処理コマンドです。

オプションとして「tokens=*」を追加することで、全てのトークンを取得して

変数「%%l」に代入しています。

※今回はすべて取得していますが、ここで「tokens=1,2,4」のように1番目と2番目と

4番目だけ取得!という設定も出来ます。

オプションとして「delims」を追加することで、トークンの区切り文字を指定します。

オプションとして「eol」を追加することで、無視する行の文字を指定します。

今回は、文字列の中に無い文字「@」を指定することで、一行取得しています。

「findstr」コマンド

指定されたパターンの文字列を検索するコマンドです。

オプションとして「/R」を追加することで、検索文字列を正規表現で検索します。

オプションとして「^」を追加することで、先頭文字列から検索します。

「%1」はバッチファイルで使用する、第一引数として指定します。

「set」コマンド

実行中の環境変数の値を設定します。

「%string:~-*,●%」コマンド

stringに設定されている文字列の後ろから数えて

*番目から●文字まで取得します。

※前から数えて取得したい場合は、「%string:~*,●%」と記載すればOK。

実行して、下記ファイル名を取得しました。

スポンサーリンク

シェアする

スポンサーリンク