• 締切済み

Windowsのバッチ(bat)ファイルでテキストの内容を引数として渡したい。

今メールを送るバッチファイルを作成しています。 宛先を書かれたテキストを引数で渡し処理したいのですが、その方法がわかりません。 下のような宛先が100件あったとします。 /宛先///////////////////// a@a、b@b、c@c、… ///////////////////////// 上の宛先を%1、%2、と一つずつ引数として渡すことはできるのですが、 テキストに宛先を全部書いて、そのテキストを渡して処理をしたいです。 方法がわかる方回答よろしくお願いします。

みんなの回答

  • K6A
  • ベストアンサー率35% (59/164)
回答No.5

直接の回答ではなくて恐縮ですが・・・ バッチファイルだけでメールを送るのはできなさそうなので、たぶん実際の送信部分は何かしらのプログラムを使っていると思いますが、もしかしてそのプログラムの機能で対応できたりしませんか? また、バッチファイルでできることならバッチのほうが簡単ですが、ちょっと込み入った内容だとWSHのほうが細かい動作の指定もできて結果的に楽ということもあります。 特別な事情がなければWSHを検討されてもよいかと思います。

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.4

> 色々調べましたが上のやつを実現するのにどうやってforを使ったらいいかわかりません。 「Forで何ができるか」は、勉強しました? 調べれば、いくらでも情報は見つかると思いますけど・・・ 例えば・・・ 「第8回 forコマンド(その2) 2.ファイル解析による繰り返し処理」 (http://www.atmarkit.co.jp/fwin2k/operation/command008/command02.html) #質問に「メール」と言うキーワードが入っているので、実際のコードの提示はしません。 #(いないと思いますが)万が一、スパムメールを出そうとか考えている人が #「メール」をキーワードにして検索してくると、よろしくないですので。 と言うことで、考え方だけ。 ファイルを ----------------- a@a b@b c@c … z@z ----------------- こんな風に1行1アドレスで用意しておいて、 FORコマンドを「/F 」で実行。 ファイルセットとして「()」の中にファイル名を指定。 DOコマンドで実際に実行するコマンドを記述。 と言う感じで・・・ それとも、ファイルのフォーマットは、 「1行に100個」でなければ駄目なんでしょうか? でしたら、申し訳ありませんが分かりませんので、パス。

  • j_nishiz
  • ベストアンサー率26% (183/697)
回答No.3

こんな感じですか? aaa.bat < bbb.txt

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.2

> それが良くわからなかったので質問しました。。 どこら辺が分からないのでしょうか? #現在、どういうコードを書いてます? ちなみに、ファイルは、1行1アドレスにしておかないと面倒ですよ。

hirahirake
質問者

補足

宛先コンマ区切りで入力します。 a@a、b@b、c@c、…、z@z このコンマ区切りのところをテキストファイルに書いて渡したいです。 解らないのは上の実行方法、それにforを使用するならforもよくわかりません。。色々調べましたが上のやつを実現するのにどうやってforを使ったらいいかわかりません。

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.1

DOSの「For コマンド」を使えばできるのでは・・・ 使い方はDOSの「Helpコマンド」で確認してください。

hirahirake
質問者

補足

すみません。 それが良くわからなかったので質問しました。。

関連するQ&A

  • バッチファイルを起動したけど、win98では引数が長すぎて。。。

    VBからバッチファイルを起動する処理を作成中です。 SHELL コマンドで実行しているのですが、 そのバッチファイルの引数がすごく長いのです。 >batch.bat "引数1" "引数2" "引数3" とする際、引数1 ~ 引数3までの合計文字列が 128?byte を超えてしまい、 win98では、使えないプログラムがあります。 複数の引数をまとめたファイルを、バッチファイルの 引数として起動させる等、 回避作はあるのでしょうか? 教えてください。

  • バッチファイルでテキストファイルを修正

    あるテキストファイルに A=1 B=2 C=3 D=4 と書かれているのを、例えば、D=5に変更できる バッチファイルは作成可能でしょうか。宜しくお願い致します。 (テキストファイルのオープン→Dを検索→5に修正→テキストファイルを上書き保存)

  • バッチファイルでテキストの編集は可能ですか?

    こんにちは。 超初心者な質問で申し訳ないのですが、宜しくお願いいたします。 以下の様に、2つのTextファイル(A.txt、B.txt)のデータを合体させて、 新規Textファイル(C.txt)を作りたいのです。  A.txt  ------------  あいうえお  かきくけこ  さしすせそ  ------------    +  B.txt  ------------  abcdefg  1234567890  ------------    ↓  C.txt  ------------  あいうえお  かきくけこ  さしすせそ  abcdefg  1234567890  ------------ VBSファイルを作って、バッチファイルから起動させようと思ったのですが、 VBSファイルを作ったことが無いので何から手をつけて良いのやらあたふたしています。 バッチファイルでの編集の仕方をご存知の方、もしくは VBSファイル作成のヒント(参考になるサイトやコードなど)を 教えていただける方がいらっしゃいましたら、宜しくお願いいたします。 #ちなみに、社内規定でWeb上に落ちてる様なフリーソフトを使うことは出来ません。

  • テキストのバッチ処理について

    【テキストファイルをバッチ処理にて書き換え】 C:\Program Files\ABC\X1\ドキュメント.txtの内容をバッチ処理で書き換えたいのですが、そのような事はかのうでしょうか? また、可能な場合どのように書けばいいのでしょうか? 「テキストの内容」 ------------------------------------- A設定 aaa-bbb-00-11 B設定 bbb-ccc-00-22 C設定 ccc-eee-00-33 ------------------------------------- 上記の内容で、22を55にバッチ処理で書き換えたい。「B設定 bbb-ccc-00-22」→「B設定 bbb-ccc-00-55」 よろしくお願いします。

  • テキスト内の文字列をファイル名にして保存するバッチ

    テキスト内のデータをファイルとして保存するバッチを作成したいです。テキスト内のデータをフォルダ名として保存する方法は見つけたのですがテキストとして保存する方法がわからずご教示いただけますと助かります。 例)テキストファイル名:File_List.txt -----テキスト内のデータ------- 会社名A 会社名B 会社名C ------------------------------------------ 実現したいこと 下記のようにテキスト内のデータをファイル名としてそれぞれ保存したい。 会社名A.txt 会社名B.txt 会社名C.txt テキスト内のデータをフォルダ名にするバッチは以下でした。 for /f %%a in (%1) do md %%a Windowsサーバにてバッチを利用します。

  • BATファイルで

    Win2000で、バッチファイルでアプリケーションを同時に複数立ち上げる方法があると聞いたのですが、どのようにすれば良いのでしょうか?  例えば、AccessのAファイルとExcelのBファイルとWordのCファイルを自動で立ち上げたいのですが。(同時にと思いますが、順次立ち上がってくれれば問題はありません)  多分、MS-DOSのファイルとして作成するのかと思いますが。

  • バッチファイル(batファイル)

    あることを自動化するために、あるサイトのバッチファイルをコピー&ペーストして使おうと思っています。 (自由に使用していいと表記してあります) しかし、使用されているプログラムがいくつか入手できなかったり、バッチファイルをいくつか繋げたらら上手くいかなかったりと、 色々と問題があり、自分で改変をしています。 初めてバッチファイルの中身を触ったような初心者なので、色々と試行錯誤しているのですが、行き詰ってしまいました。 上記のように初心者なので、言葉がおかしい所があったりするかもしれませんが、 回答よろしくお願いします。 本題です。 ファイルのドロップで処理を始めたいのですが、どうやらファイル名に半角の#が含まれていると途中でエラーが出るので、 処理の一番最初でファイル名の半角#を全角#に置き換えようとしたのですが上手くいきませんでした。(ファイル名の変更) なので新たなバッチファイル、"ドロップ用.bat"を作り、そこでファイルの置き換えを行ってから、callコマンドで 本命のバッチファイルaaa.batを呼び出そうとしました。 それでもうまくいかないため、質問させていただきました。 バッチファイルは一つのフォルダーにまとめていますが、ドロップするファイルは別のフォルダーにあります。 なお、ドロップするファイルのフルパスには、空白が含まれる可能性があります。 ドロップ用.bat--------------------------- @echo off setlocal set abc=%~n1 set def=%abc:#=#% ren "%~nx1" %def%%~x1 set ghi="%~dp1%def%%~x1" set jkl=%~dp0 call "%jkl%aaa.bat" "%ghi%" rem pause endlocal exit /b ----------------------------------------- ややこしくてまわりくどいバッチファイルですみません。 Windows7を使っています。 C:\windows\system32\cmd.exeと上には書いてあります。 よろしくお願いします。

  • バッチファイルで大量の引数が処理できない

    バッチファイルで大量のファイル(具体的には28個以上)を処理しようとすると 「指定されたデバイス・パス、またはファイルにアクセスできません。アクセス許可がない可能性があります。」 とエラーログが表示され、処理が行われません。 (shiftコマンドで引数(ファイル)を一つずつリネームしていく処理を行っております。) 管理者権限のアカウントでの操作ですし、同じファイルをひとつ、もしくは~27個処理した場合は問題ありません。 28個以上の大量の引数を利用した処理を行う方法をご存じの方がいましたら、ぜひご教授下さい。

  • バッチファイルからVBAに引数を渡したい

    お世話になります。 a.batというバッチファイルがあります。 このファイルを起動させた時にABC.xlsというEXCELが起動するようにしたいのですが、その際にバッチファイル側から"1303"という文字列をabc.xlsに引数として渡したいのです。 EXCEL側ではauto_open(a)で待ち受けて、このaに"1303"が入ってmsgで"1303"と表示させたいのですが、引数は省略出来ません、というエラーが出てしまいます。 どなたかやり方をご教授いただけませんでしょうか?よろしくお願い致します。 環境 WindowsXP SP3 Excel2003 ============================== バッチファイル側 ============================== @echo off echo バッチファイルを実行します。 ABC.xls "1303" echo 終了しました。 ============================== EXCEL VBA側 ============================== Sub auto_open(a As String) Msg a end sub

  • batでテキストファイル内の文字を使ってリネーム

    テキストファイル内の名前を使ってファイル名をリネーム+番号を付与するバッチファイルを作成したいです。 テキスト内は 1234567-0001.txt 1234567-0002.txt 1234567-0003.txt と書かれていて、 ファイルは 00000001.txt 00000002.txt 00000003.txt とあります。 これを 1234567-0001-1.txt 1234567-0002-1.txt 1234567-0003-1.txt という名前にリネームしたいです。 ファイル自体は1万ファイル以上あるのでバッチファイルで処理したいと思っています。