こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

バッチファイルで「,]区切りの文字を抜き出したい

現在、バッチを作成しているのですが、txtファイルからの文字の抜き出しがうまくいきません。

findstr /b "aaa" C:\tmp\test.txt

上記で行毎では抜き出せるのですが、それから[ , ]区切り毎の抜き出し方がわかりません。

[test.txt]
aaa,bbb,ccc,ddd
eee,ffffff,ggggg,hhhh

下記のようにそれぞれ変数に代入したいと考えております。
aaaで実行する場合。
hoge1=aaa
hoge2=bbb
hoge3=ccc
hoge4=ddd

eeeで実行する場合。
hoge1=eee
hoge2=fffff
hoge3=ggggg
hoge4=hhhh

変数への代入はfor文を使用しようと考えております。
お知恵をよろしくお願いいたします。

投稿日時 - 2011-07-25 14:51:43

QNo.6898445

すぐに回答ほしいです

質問者が選んだベストアンサー

下手なコードですが、これでどうでしょうか?
tmpファイルを使う例と2つやってみました。

エラー処理は、やってないです。
あと、ご存じだと思いますが、vbscriptやexcelでやった方が、かなり楽です。

プログラムのところで質問すると、もっとエレガントな回答があると思います。

*********************************
: CustFindStr_1.bat
: 使用法
: CustFindStr_1 aaa c:\test.txt
: CustFindStr_1 eee c:\test.txt
:

@echo off
cls

for /f "tokens=1-4 delims=," %%P in (%2) do (

if /i "%%P"=="%1" (
echo %%P %%Q %%R %%S
)
)


*********************************
: CustFindStr_2.bat
: 使用法
: CustFindStr_2 aaa c:\test.txt
: CustFindStr_2 eee c:\test.txt
:
@echo off
cls

findstr /b %1 %2 > .\tmp.txt

for /f "tokens=1-4 delims=," %%P in (.\tmp.txt) do (

if /i "%%P"=="%1" (
echo %%P %%Q %%R %%S
)
)

del tmp.txt

投稿日時 - 2011-07-27 07:40:26

お礼

ありがとうございます。
助かりました^^
プログラムの所でも出してみたいと思います。

投稿日時 - 2011-07-28 12:44:40

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問