• 締切済み

テキストファイルの値をバッチファイルの中の関数に代入する方法をご指導して頂けないでしょうか?

 初めまして、最近バッチファイルの勉強をしているのですが、テキストファイルの値をバッチファイルの中の変数に代入する事は可能なのでしょうか?  私が今考えているのはテキストファイルの中の値をバッチファイルの中の変数に代入するというものです。 例 --test.txt-- 2009 11 27 ---------- --test.bat-- FOR /L %%i IN (1,1,10) DO CALL SUB.BAT year month day ---------- 上の例のテキストファイルの値、2009をバッチファイルのyearに代入という事は出来るのでしょうか? もし可能であればtest.batにどのような事を書けばいいのでしょうか? ご指導のほどをよろしくお願い致します。

みんなの回答

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

ファイルから読むときは、for /f を使いますが、各行を別の変数にセットするのは面倒ですね。 set N=1 for /f %%A in (test.txt) do call :SUB %%A goto NEXT :SUB if %N% == 1 set YEAR=%1 if %N% == 2 set MONTH=%1 if %N% == 3 set DAY=%1 set /a N+=1 goto :EOF :NEXT echo %YEAR% %MONTH% %DAY%

radwimps06
質問者

お礼

無事解決致しました。回答ありがとうございます。 また機会がありましたらよろしくお願いします。

関連するQ&A

  • バッチ処理でファイルの中身を変数に入れるやり方

    あるファイルの中には1行の文字列があります。 このファイルをバッチで読み取り、変数に設定したいです。 例: test.txt abcacbacbacbacbacbacbacbacb test,bat set DATA=[test.txtを読み込んだ値] よろしくお願い致します。

  • バッチファイルの変数引継ぎについて

    行き詰ってしまったので、どなたか知恵を授けていただければと思います。 現在、あるソフトウェアの「バッチモード」という機能を使用したバッチを作成していて、構文が > sdcmd batch ***.txt 上記のようにコマンドを羅列したテキストファイルを指定した実行コマンドになります。 sdcmd以降はソフト指定のコマンド以外は使用できず、変数設定ができない為に変数設定とログ保存を兼ねて上記コマンドを記載したバッチを > setlocal EnableDelayedExpansion > set ○=△△△ > set ■=◇◇◇ > call aaa.bat %* >> aaa.log 2>&1 という内容の呼び出しバッチを作成たのですが、テキストファイル内の変数が代入されずに 実行されてしまいます。 cmd上から直接 > setlocal EnableDelayedExpansion > set ○=△△△ > set ■=◇◇◇ > sdcmd batch ***.txt >> aaa.log 2>&1 を実行しても変数の代入は行われませんでした。 cmd上で変数とテキストファイル内のコマンドを手動実行すれば変数は解決できます。 設定した変数を、テキストファイル内の変数値に代入する方法はあるでしょうか。

  • バッチファイルでテキストファイルの文字列を取得したい

    すみません、どなたか教えて下さい。 バッチファイル(test.bat)内で、他のテキストファイル(ok.txt)の文字列を取得したいです。 ok.txtは 20070614 TEST となってます。 この2つの文字列をそれぞれで取得する方法を教えて下さい。 よろしくお願い致します。

  • バッチファイルについて

    お聞きしたいのですが、 あるディレクトリーに test.bat test.php test.txt があり test.bat で test.php を起動して text.txt を一行一行処理しているのですが、 バッチファイルで、強制終了したとして(Ctrl + C) もう一度起動せずに Entertキー を押して test.txt の次の行から開始したいのですが可能ですか?? 詳しい方がいましたら教えてください。 宜しくお願いします。

  • バッチファイルで複数フォルダのファイルを結合したい

    バッチファイルで複数フォルダの中にあるlist.txtというテキストファイルを結合するにはどのように記述すればよいでしょうか。 具体的には、 複数のフォルダがあり、 C:\test\202104026\list.txt C:\test\202104025\list.txt      : C:\test\20000101\list.txt というような感じで、 各フォルダの中にlist.txtというファイルが入っています。 list.txt以外にもいろいろなファイルが入っています。 各フォルダの中のlist.txtファイルの内容を結合した1個のファイルを生成するバッチファイル(test.bat)を教えてください。 よろしくお願いします。(Windows10)

  • iniファイルを呼ぶバッチファイルの実行

    VB2008でProcess.Startを使ってバッチファイルを実行する プログラムを作成しました。 バッチファイルではini.batという変数に値を設定するファイルを 最初にcallしています。 しかし設定されずにエラーになってしまいます。 どうしたらうまく動くのでしょうか。 バッチファイルをクリックで実行すると正常に動作します。

  • バッチファイルの変数をパラメーター化

    お世話様です。 WindowsXP環境に下記バッチファイルがあります。 バッチコード内は以下の通りです。 ------------------------------------------------ set TARGET_FILE=test.txt ------------------------------------------------ この【TARGET_FILE】という変数内に格納されている【test.txt】という値を パラメーターとしてあるVBS内の変数Aがそれを受け取って処理をする・・・。 という事は可能でしょうか? 上記バッチは数種類あり、【TARGET_FILE】変数内の値がそれぞれ違います。 VBSコード内は以下の通りです。 ------------------------------------------------ Option Explicit Dim FILE FILE = ○○○←ここに上記バッチ内の【TARGET_FILE】変数の値を受け取る。 MsgBox FILE ------------------------------------------------ 各バッチは上記VBSで実行したいのです。 Msgbox程度の処理は当然バッチでも可能ですが、何個もVBSを作成するのは厳しいので、 パラメーターが可能であれば、このVBS1個で済みます。 ご存知の方がおりましたら、お知恵を拝借しても宜しいでしょうか? 何卒宜しくお願い致します。

  • バッチファイルでファイル生成の件

    OS :WindowsXP sp3 バッチファイルのコーディングのアドバイスをいただけませんでしょうか? バッチファイル名:aaaa.bat バッチファイル起動時 aaaa.bat a01 a02 a03 a04 ・・・・・4つの引数を使用 バッチファイルのソース net \\(ipアドレス)\test\a ・・・・ipアドレスのファイルサーバーにマウント echo test >>testtxt.TXT ・・・・testtxt.txtのファイルを生成 この状態で引数4つ目を使用してtesttxta04.txtというテキストを生成したいと思っています。 コーディングではどのようにすればいいのかアドバイスいただけませんでしょうか?

  • バッチファイルで

    バッチファイルでファイル名をキーボードで変更するのは どうすればよいのでしょうか 例:A.txtと言うファイル名をキーボードから2006data.txtにしたいのですが REN C:\A.txt 2006data.txt はわかるのですが2006.txtを変数にして その変数をキーボードで入力する方法(今更バッチファイルでもないのですが?) よろしくお願いします。

  • バッチファイルで実行できたりできなかったり

    こんにちは。 バッチファイルとコマンドプロンプトについて、少々お伺いしたいことがあります。 まず、コマンドプロンプトで以下のコマンドを打ち込んでみたところ、すべて正常に実行することができました。 ping [example.com] > result.txt tracert [example.com] >> tr_result.txt ipconfig /all > ipc_result.txt 次に、各コマンドをテキストファイルに書き込んで、それぞれ "p_test.bat" # 内容は ping コマンド "tr_test.bat" # 内容は tracert コマンド "ipc_test.bat" # 内容は ipconfig コマンド と命名しデスクトップに配置、ダブルクリックで実行してみました。 すると、このうち正常に実行(結果をテキストファイルに出力)されたのは tr_test.bat のみでした。 ここで質問なのですが、なぜこのような違い(バッチファイルにすると実行できるものとできないものに分かれる)が起こるのでしょうか? バッチファイルの作り方やとコマンドプロンプトについて調べてみましたが、説明を見つけることが出来ませんでした。 この辺の理論について詳しい方がおりましたら、ご教示頂きたく思います。 ちなみに、OS は Windows XP SP2 です。 よろしくお願いいたします。

専門家に質問してみよう