• 締切済み

bat(バッチ)ファイルで文字入力受付・ファイルへ書込み

Tbugの回答

  • Tbug
  • ベストアンサー率100% (1/1)
回答No.2

外部コマンドの中に、BATKEYコマンドなどは入っていますか?入っていなければ自作するしかないと思います。 またファイル内の"Input="行を見つけてどうこうするようなコマンドもなかったはずです。 (perl言語やC言語などで上記の処理を書いたらかなり楽なんですがダメですかね??。。汗;) 前者の処理は自前で作り、後者を信頼あるコマンド(例ではsedコマンドを使用)に処理させたとしても、2つの処理間でのデータ渡しのために、アルファベット分の条件分岐(26 x2)が必要になってくるかと思います。以下sample.batの例です。参考にしてください。 --- sample.batの例 --- @echo off :loop  input_key.exe  REM 上記input_key.exeは自前コマンド  REM もしBATKEYがあればそちらを使ってください。  if errorlevel= 1 goto cap_a      :  if errorlevel=52 goto lit_z  if errorlevel=53 goto err :cap_a   sed s/^Input=$/Input=A_input/ < sample.txt > sample.tmp   goto end :cap_b   __中略__ :err   echo "正しく1文字いれてください"   goto loop :end   copy sample.tmp sample.txt   del sample.tmp たぶん上記のような感じになるとおもいます。どうでしょう。。

MossFran
質問者

お礼

お返事が遅くなり、大変失礼いたしました。 ご回答、サンプルコードの掲載ありがとうございます。 batファイルだけでは難しいということがわかりました。 他の方の回答で、VBSで作成する案をいただきましたので、そちらに挑戦してみたいと思います。

関連するQ&A

  • バッチ(bat)の作り方を教えてください

    今、特定フォルダ内にあるファイル3つが存在すればコマンドを実行し、無ければ4時までループさせるといったことをバッチでしたいと考えております。 イメージは以下の通りです。 D:\a.txt,D:\b.txt,D:\c.txt バッチを1時から動かして、上記3つが揃えば、そこからコマンドを実行しバッチは終了 もしなければ10分置きにファイルをチェックし、4時を過ぎればバッチを終了(コマンドを実行させない)ということをしたいです。 コマンドは何でも良いので例えば「echo HELLO」とでもしておきます。 よろしくお願いいたします。

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

    バッチファイルについて バッチファイルの勉強をしておりますが、以下のバッチで 分からない箇所があります。 @echo off copy C:\bin\set.txt set.txt | find /v "コピー" echo ユーザー名を入力してください echo 入力後、Ctrlキーを押しながらZキーを押した後、Enterキー copy con inp.txt | find /v "コピー" copy set.txt+inp.txt setinp.bat | find "○○" call setinp.bat echo ユーザー名は%INP%と入力されました! del setinp.bat set.txt inp.txt <<不明箇所>> まず、C:\bin\set.txt』は set INP= とだけ書いたファイルです。 copy C:\bin\set.txt set.txt | find /v "コピー" ですが、|find /v"コピー"はなんのためにやっているのでしょうか?? find /vを調べてみると、指定した文字列を含まない行の内容をすべて画面に表示します。 と記載されていますが・・・・このバッチでは一体なぜ最初にいるのでしょう?? copy con inp.txt | find /v "コピー" ですが、コンソールから入力させた文字列をinp.txtに保存しているらしいのですが、 そのあとに、また、|find /v"コピー"がでてきますが、なぜでしょう??なにを したいのでしょう?? さらにまた、copy set.txt+inp.txt setinp.bat | find "○○"が出てきますが、 ここでなぜまた意味不明な、|find"○○"がでてくるのでしょう?? さらにさらに、バッチを実行してみると、set.txtの中身にはコンソールから 入力した文字は何も記載されていない、そして、inp.txtやsetinp.txtという テキストファイルも、どのフォルダにも出来ていません。 最後の行のdel setinp.bat set.txt inp.txtを消して実行してみても同じです。 なぜでしょう?? このバッチの動き、例としての意図が全く分かりません。。。。 この例題が悪すぎるのか、私の頭がわるすぎるのか・・・・ ちなみに、上記バッチは、http://www.geocities.co.jp/SiliconValley-SanJose/1227/batinput.html のサイトのものです。 どなたかご教授願います。。。一週間悩みましたが、まったく理解できない状態です。。。

  • 複数のファイルに同じ文字列を自動入力するバッチ

    複数のテキストファイルに同じ文字列を入力して保存するバッチを作成したいです。 テキストファイル1.txt テキストファイル2.txt テキストファイル3.txt 上記3つのテキストファイルがあったとしてバッチを起動すると 同じ文字列のデータを自動的に入力したい。 自動入力する文字列:あいうえお そもそも実現可能なのかもよくわかっていませんが ご教示いただけますと幸いです。

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

    バッチファイルから.txtを読み込んで.txtを何行目からスタートさせる事はできるのでしょうか?? 作業としては aaa.txtの三行目を読み込んで test.txtを処理して aaa.txtの終点にくれば作業終了 と言う感じなのですが。 どなたか詳しい方教えてください。 宜しくお願いします。

  • DOSプロンプトでリダイレクションでファイルから入力した文字を表示したい

    標準入力から入力があるプログラムをDOSバッチでテストする為、 入力文字をファイルにしてリダイレクションで入力させています。 入力はされてそれなりに動くのですが、標準出力には入力させている文字列が表示されません。 具体的には、例えばprog.exeというプログラム内で、 printf("Input A =") ; gets(strA) ; printf("Input B =") ; gets(strB) ; となっていて、 入力用のテキストファイル(input.txt)に 1 2 と書込んで、 prog < input.txt とすると、 Input A =Input B= と表示されます。(strA,strBには各々1,2が入っています) テスト結果のログとしてできれば、人が入力する時と同様に Input A = 1 Input B = 2 と表示させたいのですが、何か方法がありますでしょうか? よろしくお願い致します。

  • テキストファイル内の指定文字が含まれる行以下を削除

    いつもお世話になります。 以下、バッチ(bat)で可能でしょうか? テキストファイル内(sample.txt)に指定文字(SA2:という文字)が必ず1行含まれていて 2行以上にはなりません。 SA2が含まれる行以下を削除し、sample1.txtという名前で保存したいです。 findstr SA2 でSA2が含まれる行を調べられるのいですが、その行を含む以下の行を 削除するというのが、どのように考えたらいいのかわかりません。 お力添え頂けますでしょうか? 宜しくお願い致します。

  • バッチファイルで

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

  • PhotoshopCS4 写真に文字を入れるバッチ処理

    フォトショップCS4でバッチ処理をしています。 Aというフォルダに約3000枚jpegの写真があるのですが これらの写真全てに「sample」という文字を入れなくてはなりません。 そのAフォルダの写真にsampleという文字を入れたらBというフォルダに保存したいのです。 そこでバッチ処理をしようと思ったのですが、なかなかうまくいきません。どなたかお教え下さい。 現在の方法はアクションから新規アクションを選択。 開くコマンドからAフォルダを選択して1番目の写真Qを出します。 その写真に、もともとフォトショップ上に出してあった 写真Zにsampleという文字があるので、そのZを選択して sampleレイヤーをQにドラッグします。 その後別名で保存を選びBフォルダへjpegで保存します。 以上で記録を中止しまして、その後ファイル→自動処理→バッチを選択し必要事項を記入後バッチスタートなのですが、まずsampleという文字が入っていません。しかもバッチの最後に保存しますか? 聞いてくるため、enterキーを押さなくてはいけない為、結局PCから 離れられないということになります。 すいませんがよろしくお願い致します。

  • DOSバッチファイルで日々ファイル名が変動するファイルの存在チェック

    こんにちは。 フォルダにあるファイルが存在するときに処理を行うバッチファイルを作成しています。 あるファイル名は一部は固定文字で一部は変動します。 具体的には sampleYYMMDD.txt となり、YYMMDDは変動し、その内容は他のファイルdate.txtに入っています。 例えば、date.txtには 041021 がはいっていて バッチファイルでsample041021.txtがあれば次の処理を行うといったロジックを記述したいのですが、どうしたらできますでしょうか? ファイル名が固定であれば単純に FOR %%F DO IF %%F==sample041021.txt 処理 とできそうなのですが、ファイル名の情報はdate.txtの内容に依存します。 もっと簡単なやり方でもかまいません。ヒントをいただけないでしょうか?

  • 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万ファイル以上あるのでバッチファイルで処理したいと思っています。