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

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

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

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

Q&A

解決済

2回答

3460閲覧

バッチファイル findstrとfor文を使ったやり方

shinzin

総合スコア4

バッチファイル

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

0グッド

0クリップ

投稿2022/01/06 08:12

編集2022/01/06 09:36

前提・実現したいこと

aim.txtから希望抽出要素数に応じた抽出要素でAND抽出したいのですが、
どのように書けばいいのかわかりません。

あらかじめ、抽出要素数が決まっていれば、
findstr "%str1%" aim.txt | findstr "%str2%" >> grep.txt
のように書けるのですが、指定要素数になった場合にどのようにするのかわかりません。

該当のソースコード

setlocal EnableDelayedExpansion
type nul > grep.txt
set count =
set /p count="何個の要素で抽出するか"
set str =
for /L %%a (1,1,%count%) do (
set /p str ="%%aつ目の要素を入力してください。"
findstr "!str!" aim.txt >> grep.txt ←この部分をAND条件で入力要素すべて含んだ行で抽出したいです。
)

入力した要素でAND条件で抽出したいです。

試したこと

copyでどうにかしてできるかなと試しましたが、うまくいかず

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

otn

2022/01/06 09:30 編集

> AND抽出したいのですが、 と書いていながら、コードはORっぽいのですが、どっちでしょう? 入力した!str!をすべて含んだ行?どれかを含んだ行?
shinzin

2022/01/06 09:31

すべてを含んだ行です。 申し訳ございません。
otn

2022/01/06 09:32

ではコードは無視ですね。
guest

回答2

0

ベストアンサー

すべてを含んだ行です。

CMD

1setlocal EnableDelayedExpansion 2set count= 3set /p count="何個の要素で抽出するか" 4set str= 5copy aim.txt grep-in.txt >NUL 6for /L %%a (1,1,%count%) do ( 7set /p str="%%aつ目の要素を入力してください。" 8findstr "!str!" grep-in.txt > grep-out.txt 9copy grep-out.txt grep-in.txt >NUL 10) 11結果は grep-out.txt に。

また、set count=と、set count =は違いますので、空白に注意しましょう。

投稿2022/01/06 09:35

otn

総合スコア84808

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

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

shinzin

2022/01/06 13:55

ありがとうございます。助かりました。 バッチファイルを作成するのは初めてで勉強不足でした。 特にset count=と、set count = は別物なんですね。今後注意します!
guest

0

wshなどもう少し上級言語で処理したほうが良いと思います
(cscriptならCUIでも動作します)

投稿2022/01/06 08:26

yambejp

総合スコア115012

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

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

shinzin

2022/01/06 13:56

wshは初めて聞く言語でした。 時間のある時に学習してみようと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問