質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Q&A

解決済

2回答

4739閲覧

指定した文字のある最初の行を変数に代入する

evilscope

総合スコア16

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

0グッド

0クリップ

投稿2018/06/26 02:56

編集2018/06/26 04:13

前提・実現したいこと

現在バッチファイルを使ってログファイルの中から指定した文字の含まれる行を抜き出し、
その結果を変数に収めたいと考えています。

発生している問題・エラーメッセージ

たとえばAAAという文字列の含まれる行が複数あるとしてその初めの行だけを抜き出したいですがその方法がわかりません。
また、以下のような結果があるとして○○○の部分を環境変数に代入したいのですが方法がわかりません。

AAA:○○○

該当のソースコード

現状AAAの含まれる行を抜き出すところまでしかわかりません…

findstr AAA LOG.txt

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

DOS.bat

1for /f "tokens=2 delims=: " %%A in ('findstr AAA LOG.txt') do set A=%%A&goto NXT 2:NXT

otnさんの回答をもとに調べてみると「delims=:」は最後に記入するとの文言があったので最後に移動させました。

投稿2018/06/26 04:55

evilscope

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2018/06/26 06:34

コロンが、質問文では全角、この回答では半角になっています。全角半角に無頓着なのは駄目ですね。 あと、delimsを末尾に空白を置いて書くと、「区切り文字がコロンまたは空白」という意味になり、私の回答では「区切り文字はコロンのみ」と動作が違います。
guest

0

コマンドの実行結果を変数に入れるのはfor /fを使います。
また1行目で処理を終えるために繰り返しの外にgotoします。

DOS

1for /f "delims=" %%A in ('findstr AAA LOG.txt') do set A=%%A&goto NXT 2:NXT

以降だけ取りたい場合は、区切り文字を指定します。

DOS

1for /f "delims=: tokens=2" %%A in ('findstr AAA LOG.txt') do set A=%%A&goto NXT 2:NXT

投稿2018/06/26 03:23

編集2018/06/26 04:14
otn

総合スコア84538

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

evilscope

2018/06/26 04:11 編集

DOS.batを実行すると 「"delims=" の使い方が誤っています。」 と出てしまいます
otn

2018/06/26 04:16

すいません。なんか、投稿直前にうっかり余計な場所にペーストしてしまっていたみたいです。 訂正しました。
evilscope

2018/06/26 04:21

ありがとうございます。 実行してみたところ変数Aの中身が 「:○○○」 になっていました。 :は残ってしまうものなのでしょうか?
otn

2018/06/26 05:58 編集

残りません。それは、データファイルが質問文の通りでないか、コマンドを書いた通りにしていないか、どちらかです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問