- - PR -
バッチファイルでテキスト読込
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-03-04 11:48
以下につきまして、分かる方いらっしゃいましたらご教授下さい。
初歩的な質問で申し訳ございません。 使用OS:windowsXP 要件:バッチファイルである特定のファイルを読み込み、そのファイル内の文字列を1行 づつ環境変数に格納したい ------------------------------------------------------- 例: ■読込ファイル(a.txt) aaaa bbbb cccc dddd eeee ffff gggg hhhh iiii ・ ・ (不特定多数) ■バッチファイル バッチでファイル内の各行を環境変更に格納 A=aaaa bbbb cccc B=dddd eeee ffff C=gggg hhhh iiii D= ・ E= ・ (不特定多数) ------------------------------------------------------- 1行だけであれば、特定の環境変数に格納できるのですが、 不特定多数の行を、違う環境変数名で実行する方法が分かりません。 そもそもこのようなことが出来るのかもわかりせん。。。 申し訳ございませんが、分かる方いらっしゃいましたらご教授下さい。 以上、よろしくお願いいたします。 | ||||
|
投稿日時: 2008-03-04 12:46
saki1208です。
for コマンドを使用すればテキストファイルの行単位で 処理することは可能です。 # 例の内容が処理できるかは別ですが... # XP で for コマンドを使用したバッチがあったのです # が、残念ながら今は手元にありません。 [ メッセージ編集済み 編集者: saki1208 編集日時 2008-03-04 12:47 ] [ メッセージ編集済み 編集者: saki1208 編集日時 2008-03-04 12:50 ] | ||||
|
投稿日時: 2008-03-04 14:55
saki1208様
ご返答ありがとうございます。 >for コマンドを使用すればテキストファイルの行単位で >処理することは可能です。 いろいろとFORを使ってためしてはいるのですが、どうしても要件を満たせるような バッチが作れません。 それぞれの行を環境変数に格納することはできるのですが、同じ環境変数名でないとできないため、全て上書きされ、最終的に最後の行が格納されるようになってしまいました。 やはり、別の環境変数名で各行を格納することは難しいでしょうか? | ||||
|
投稿日時: 2008-03-04 15:48
こんにちは
よく状況がわからないのですが、回している同じタイミングで 入れる変数も変化させていけばいいのではないでしょうか? ミニマムコードを提示してみてはいかがですか? #コードはBBコードを使用するとインデント等きれいに表示できますです。 [ メッセージ編集済み 編集者: みなと 編集日時 2008-03-04 15:51 ] | ||||
|
投稿日時: 2008-03-04 15:57
どうしてもコマンドで行なう必要があるのでしょうか?
他に逃げ道は無いのでしょうか? | ||||
|
投稿日時: 2008-03-04 18:32
ネタですが、vbsで作ってみました。
環境変数名のA〜はどこから出てくるのでしょうか?
※編集したら勝手に1行ずつ改行が入った・・。 [ メッセージ編集済み 編集者: ぴよこ 編集日時 2008-03-04 18:38 ] | ||||
|
投稿日時: 2008-03-04 18:56
これでたぶんうごくと思う | ||||
|
投稿日時: 2008-03-07 11:03
皆さん
ご返答ありがとうございます。 何とか出来そうな感じです。 >ゆうじゅん様 いただきました内容で実施してみました。 環境変更名も不特定数で増えていき、理想のものとなりました。 1点分かりましたら教えて下さい。 ------------------------------------ set count=1 for /f %%i in (test.txt) do @call :add %%i exit /b :add set a%count%=%1 set /A count+=1 :aaaaa SET Num= SET/P Num="番号を入力して下さい%Num%: " ・ ・ ・ ●頂きましたスクリプトの下に別のスクリプトを書いた場合、テキスト1行目を処理⇒下のスクリプトを実行⇒上のスクリプトで2行目を処理⇒下のスクリプトを実行という動きになってしまいます。 理想としましては、上のスクリプトがテキストの行数分を処理してから、下を(:aaaaa)処理するようにしたいのですが、お分かりになりますでしょうか? いろいろと試したのですが、無知なものでなかなかうまくできません。 よろしくお願いいたします。 |