• ベストアンサー

DOSバッチとバーコードリーダー入力

DOSバッチを起動させた後、バーコードリーダーでIDを取り込み、 それを echo を使ってログファイルに書き出します。 そして、次の処理(xxxx.exe)を実行し、エラーがなければ、その旨 ログファイルに書き出す。 こういうことをやりたい、と考えております。 しかし、最初の部分 「DOSバッチを起動させた後、バーコードリーダーでIDを取り込み、」 この作り方がわかりません。 サジェスチョンをお願いします。

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

  • ベストアンサー
noname#194317
noname#194317
回答No.4

やっぱりそのBCRの仕様を書いてもらわないと厳しいですよ。そもそもBCRの接続方法すら伏せられているんじゃあ、いったいどうしろと?本当にコマンドプロンプトから使えるかどうかも解らないじゃないですか。もしRS-232C接続とかだったら、接続プロトコルから面倒見なきゃいけない話ですよね。 キーボード入力のふりをするBCRだったら、 SET /P BCRDAT ECHO %BCRDAT% > C:\BCRDAT.TXT ってやれば、C:\BCRDAT.TXTに入力結果が書き出されます。これだと毎回上書きになるので、それじゃ困るという場合は不等号を2個に増やしてください。それで追記になります。

atom_28
質問者

補足

ありがとうございます。 BCRは、入力キーボードと同じもと(だけだ)、と理解しておりました。 色々なタイプがあることを知りませんでした。 SET /P BCRDAT :これは、エラーになりますが、 SET /P BCRDAT= :これであれば、エラーにはならない。 そういうものと、理解しました。 ところで、別のサイトにて、下記を見つけましたが、   %input:"=% が理解できません。 下記は、うまくうごいておりますので、正しいのですが・・・・ set /p input= if defined input set input=%input:"=% if /i "%input%" == "0" (goto 処理0) よろしくお願いいたします。

その他の回答 (5)

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

No5の補足について。 %~1 とかは、最初と最後が引用符で囲まれていた場合にその引用符を削除すると言うことで、途中も含めたすべての引用符の削除とは違います。 %変数名:置き換え対象文字列=置き換え後文字列% という書き方です。詳しくは、コマンドプロンプトで、set /? と入力すると説明が出ます。 例: set X=ABCDEFG echo %X:DE=ZZ% ⇒ ABCZZFG を表示 echo %X:E=% ⇒ ABCDFG を表示

atom_28
質問者

お礼

ありがとうございます。 納得です。新しい知識を得ました。 感謝です。

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

No4の補足について。 set /p input= if defined input set input=%input:"=% if /i "%input%" == "0" (goto 処理0) %input%の中に(つまり入力されたデータに) 引用符が含まれていた場合は、3行目のifがエラーになります。それを防ぐために事前に%input%に引用符が含まれてたら削除するというのが2行目です。 引用符が含まれている可能性が全くないのなら2行目は不要です。

atom_28
質問者

補足

ありがとうございます。 引用符の削除の方法をインターネットで調べているのですが、 %~1 (%と番号の間にチルダを入れる)ことにより、引用符削除 は有るのですが、今、問題としている :"= は、見つかりません。 この部分をきちんと理解したいのですが、もう少し、教えていただけませんか? 宜しくお願いいたします。

回答No.3

何で詰まってるか非常にわかり難いです・・・ そもそもやりたいことがわかり難いのですが、 DOS起動⇒バーコードリーダーでバーコードを読み取る(手動)⇒読み取りの値をテキスト書き出し⇒次のexe・・・・ ということですかね? DOS起動後、 set /P INPUT= で入力待ちにすればいいだけに思えます。 人様の回答に口出しして申し訳ないですが、 バーコードリーダーの説明書にバッチに関係する記載なんてありましたか? 私はそんなの見たことが無かったので・・・

atom_28
質問者

補足

ありがとうございます。 小生の理解する事柄が狭く、明確に書いたつもりでも 足りていませんでした。申し訳ない。 でも、「set /P INPUT=」が欲しかった事柄です。 ありがとうございました。

  • pc_net_sp
  • ベストアンサー率46% (468/1003)
回答No.2

バーコードリーダーの説明書を読まないと分かりませんが、某病院で使っているものはノートパッド・Word・Excel(MS Office系)くらいにしか文字化しない商品を使用しています。 なので、コマンド プロンプトに文字化しません。 ドライバーはWindows標準ドライバで動いてます。 アプリはなし 仕様なので諦めるしかないかも。。。   

atom_28
質問者

お礼

コメントありがとうございます。

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

おそらくバーコードリーダーのソフトの説明書に書いてあると思うのですが。 逆にその情報が無いと誰もアドバイスできません。

atom_28
質問者

お礼

コメントありがとうございます。

関連するQ&A

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

    こんにちは Windows7Ulti32ビットを使用しています セキュリティホール云々とはいわれていますが、やはりガジェットは使い心地がよく 継続して使用したいと思っています ただ、数回に1回しかガジェットの表示がされず、他の時にはガジェットが表示されません。 sidebar.exeをkillして、再度sidebar.exeを起動すると復活するのですが、毎回やるのは 面倒なのでバッチでkillして再起動しようと思いました ところがそのバッチのdos窓が閉じずに、、今度はそちらで悩んでいます 以下に記載するバッチファイルを実行後、DOS窓を閉じるには どのようにバッチファイルを作成すればいいのでしょうか? SideBarCtrl.bat @echo off taskkill /im sidebar.exe /f > nul start "" timeout 2 > nul start /min cmd /c,"C:\Windows\winsxs\x86_microsoft-windows-sidebar_31bf3856ad364e35_6.1.7601.17514_none_d0e415a884ea33e1\sidebar.exe" exit

  • Cで、呼び元のDOSバッチを終了させたい

    DOSのバッチからexeを呼んで、そのexe内で呼び元であるバッチファイルの呼んだ行以降に行かないようにしたいのですが出来るでしょうか? バッチでerrorlevel拾って判断して終わらせる(EXIT? )のではなく、EXE内でDOS窓を閉じたいのです。 C++で書いてます。 どなたかわかる方知恵をお願いいたします。 出来ないというのでもかまいませんが・・

  • USBバーコードリーダ

    USBのバーコードリーダーがついつい落としてしまって、使おうと思ったら、USBサージがなんちゃらとか出て、認識しなくなりました。 再起動してもダメで、まだドライバの削除は行っていませんが、バーコードリーダ自体認識しないため、どこにドライバが入っているか・・・・ 壊れたのかと思ったんですが、他のPCでは認識するので、 なんででしょうか??

  • DOSバッチにて外のファイルの指定行を読む

    今回、皆様の助けを頂き、DOSバッチを作成して仕事をやることができました。 感謝します。しかしながら、入出力に関して、もう少し理解したいと思います。 特に、外のファイルの指定行の内容を読み出すことはできないでしょうか? 外のファイルの最初の行を読み出す @echo off set /p abc=< c:\mylog.log echo %abc% 外のファイルの最後の行を読み出す @echo off FOR /F "delims= " %%a IN (c:\mylog.log) DO (set abc=%%a) echo %abc% ----------- DOSのHelpを調べてみましたが、 For のパラメータについて、よく理解できていません。 パラメータをうまく使えば、ファイルの指定行を読み出せる気がするのですが、 調べ切れていません。 宜しくお願いします。

  • ATコマンドからエグゼファイルが実行できない

    こんにちは。 ATコマンドで毎日10:00時に一回、あるバッチファイルを起動させる登録を行なっています。 しかしバッチファイルからVBで作成したエグゼファイルが実行されていないようです。 エグゼファイル(Project1.exe)は今はテスト用で実行させますとWindowが表示されるだけです。DOSプロンプトから実行させるとWindowはちゃんと表示します。 ログファイルを意図的にはかせてますが、終わりのログがはかれているのでバッチファイル自体は実行されているようなのですが。 どういった原因なのかこころあたりある方よろしくお願いします。 起動するバッチファイル(testbat.bat)の内容 C: echo "start" >C:\test.log Project1.exe echo "end" >C:\test.log

  • USBにデータを格納できるバーコードリーダー

    現在工場に勤めています。 バーコードリーダーでCODE-39の2元バーコードをスキャンして、そのデータを 内蔵のUSBメモリに格納し、後で事務所のパソコンにダウンロードするような 機能を持ったバーコードリーダーはないでしょうか? バーコードリーダーからワイヤレスでパソコンに転送する方法も考えましたが、 セキュリティの面から実現は難しいです。

  • バーコードリーダーを起動するプログラム

    失礼いたします。 携帯サイトを作っているのですが、サイト内でQRコードを読み取るバーコードリーダーを起動するためのプログラムを知りたいのです。 調べてみたものの、これといった情報が手に入らなかったため、もし御存じの方がいらっしゃったら御教授いただけると幸いです。 宜しくお願い致します。

    • 締切済み
    • PHP
  • DOS findコマンドのバッチでストールする

    DOSコマンドプロンプトで.batファイルを作成。 内容は find "2007:01" access_log_2007_04_11.txt >log2007041101.csv このバッチファイルを、検索するaccess_log_2007_04_11.txt と同じフォルダー上において、ダブルクリックで起動すると。 コマンドプロンプトが開くのだが、以前実行した、 find "2007:00" access_log_2007_04_05.txt >log2007040500.csv が、延々と実行され。 コマンドプロンプトを閉じても log2007040500.csv を、消しても消しても、作成される。 システムを落とすしかなくなる。のです。 4月の頭では正しく動作していたんですが???

  • 蔵書点検をバーコードリーダーを使ってする方法

    町の図書館です。蔵書データをエクセル(蔵書リスト)で3万件持っています。 実際に本があるかどうか蔵書点検をしたいと思っています。 バーコードリーダーで図書のバーコード(図書ID)を一件ごと読みこんで、図書IDをエクセルの新ファイル(図書IDリスト)に次々と入れ込みたいのですができますか? 読み込みができれば、蔵書リストとマッチングするマクロを組みたいと思います。

  • バーコードリーダーの不具合・・・

    現在、ZEBEX社のバーコードリーダー(ITC-80)を使用しています。 ISBNと宅急便の伝票番号を読み込むために使用しています。 今まで何も不具合なく約半年使用してきたのですが、急に読み込めなくなりました。 不具合の内容は (1)PCにUSBで接続すると赤い光がずっと光りっぱなしです。  ※今まではボタンを押しながら読み込んでいたのでボタンを押したときだけ光っていました。 (2)バーコードを読み込む音が『ピッ』となり一瞬、青いランプがつきますが、PC上に数字の入力がされません。 (3)『ピッ』となっても赤い光が消えません。 ・・・この後、何も反応しなくなります。 バーコードリーダーについて詳しくないので、良く説明出来ず分かり難くくてすみません。 何度かPCに繋ぎ直したりしましたが、症状は同じです。 つきさっきまで普通に使っていたのに繋ぎ直したら使えなくなりました。 ZEBEXのHPなども見当たらず、故障なのか設定の問題なのか良くわかりません。 同じくZEBEX社のバーコードリーダーを使用していてご存知の方いらっしゃいましたらご回答お願い致します。 明日からも仕事で沢山の数字を入力しなくてはならないので大変困っています。 新しい物を購入したほうが無難なのでしょうか? 宜しくお願いします。