• ベストアンサー

バッチ内で、echoがonかoffか判定する方法

notnotの回答

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

No7の回答は、あくまで、 >得てしてそういう問題は、 >既に議論されてうまい方法が見つかっていたりしますから。 に対しての物です。「一時ファイルを作らずに現在のエコー状態を知る」というのを切実に議論した人が多いとは思えません。一時ファイルを作成するというのはOSや標準プログラムがいくらでもやっているごく普通のことなので、クイズ問題でも無ければ、普通の人はそういう制限を持ちません。ということで、私はこの質問をクイズ的に捉えていますので、「一時ファイルを作れ」と薦めているわけじゃ無いです。誤解無きよう。 ところで、「一時的にエコーしない」は解決済みで良いですよね? 「一時的にエコーする」は、No5の回答の時に ・自分でechoする ・サブプロセスのバッチファイルで処理する という2案を出していますが、それは何故駄目なのでしょうか? 「自分でechoする」は私もたまにやります。

Donotrely
質問者

補足

もともとダメもとで聞いただけですけどね。 okwavでは切実と多くの人間が感じるものだけが 対象にされているとも思っていませんし。 もしあれば幸いということでした。 最初からプログラムするのでもなく、 かつて自分で作り自分で使っているものに手を入れるのでもなく、 既にある、仕様書も無いものにある処理を挿入するような場合を 想定しています。 もちろん契機はありましたよ、ある種の特定の作業をしていて、 そういう場面に遭遇し、掲題のうまい方法は無いか?と考え始めました。 しかし当初簡単だと思いましたがそうではないと気付き、 その作業は全体を慎重に精査し片を付けました。 しかし本当にそういう方法は無いのか? は、暇な時に時々思い出して考え続けていたということです。 何の副作用も起こさない、統一的な方法やスタイルは無いだろうか? もしあればそれを認識しノウハウとして蓄積しておきたい、 ということです。 特定の問題に対し、対処法が分からず困って相談している、 ということではないのです。 当方の説明も十分ではないのかもしれませが、 この趣旨が理解いただけない方が多いなあとつくづく感じました。

関連するQ&A

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

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

  • 指定日数経過したファイルをバッチを使って削除する方法

    お世話になります。 今回質問したいのは、あるフォルダ内で作成から5日経過したファイルを削除するバッチの作成方法です。 例えば del /s /q "c:\temp" これを実行するとtempフォルダ内のファイルがサブフォルダを残してすべて削除されます。 これを「作成から5日経過したもののみ」と条件をつけたいのです。 あと、できたら「5日以上アクセスのないもの」という条件もあわせて教えていただければ幸いです。 今回業務の関係で上記処理をバッチでの実行に限定されています。 VBSなどでもできるとは思いますが、バッチコマンドを教えていただければと思います。 わがままを言って申し訳ありませんが、よろしくお願いします。

  • バッチでイベントログ出力したい

    バッチでイベントログ出力したい Windows2003でバッチファイルにてコマンドを実行し、エラーの場合は イベントログに出力したいと考えています。 ERRORLEVELを判定してエラーなら eventcreate /ID 100 /L system /SO Cmd /T ERROR /D "エラーメッセージ" のようにeventcreateコマンドを実行するようにしています。 この"エラーメッセージ"の部分を実際のコマンド実行時のエラーメッセージを 入れ込みたいのですが複数行入れる方法がないか教えてください。 コマンド 2> file.log のようにエラーを出力してそれをfor文で読み込んでいこうとしたのですが 変数に複数行入れることができず、上手くいきません。 何か良い方法があれば教えてください。

  • バッチからSQLCMDを実行する方法

    以下のようなコマンドをバッチファイル(.bat)に記載し、実行しています。(ローカルのsqlserverにwindows認証で入れる事は確認済みです。) !!sqlcmd -E -d database -i c:\sql\a.sql ですが、バッチを実行してもsqlcmdが動作せず、 「'!!sqlcmd'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」 というエラーが発生します。 バッチファイルから、sqlcmdの実行方法をご存知の方、申し訳ありませんがご教示お願いします。

  • バッチファイル

    コマンドプロンプトから実行するコマンド 2つを、100回繰り返したいのですが、 バッチファイルで100回繰り返すにはどうしたらよいでしょうか? 単純にForで出来ると思っていたのですが、 dosのバッチファイルのforはちょっと違うみたいで、ほかの言語のように for(){繰り返したい処理} ということが出来ないみたいで、 しかも変数<100というのも出来ない? ようで(INで0 1 2 3・・・のように指定するのですね・・・?) 戸惑っています。 変数を使ってインデントして100で終了させようと思ったのですが、変数も使えない・・・??のですね。(使えるのでしょうか??) そこでWSHで一セット分のコマンドのバッチファイルを作ってWSHからそれを100回呼ぼうかと思ったのですが、いまいち方法がわかりません。 また、wshの中で直接dosコマンドが使えると最もよいのですが・・・。 詳しい方がいましたら教えていただけると幸いです。

  • バッチファイルの文字判定について

    バッチファイルの文字判定について 以下のような処理をさせたいのですがうまくいきません。 変数Aの中に格納されている文字列の内、 ":"記号が1つでもあった場合→処理実行 ":"記号が1つもなかった場合→goto :eof ディレクトリのパスが納まっているかの確認で、":"を探すようにしました。 あまり良い方法でもないので、ディレクトリのパスが変数に入っているかの確認も、 併せてご教授くだされば幸いです。

  • 削除バッチ方法を教えてください

    Aフォルダの中のあるファイルのみを残し、他のファイルを削除するバッチorDOSコマンドを教えてください? ログファイルを削除するために上記のような仕様でバッチ作成したいのですが、いろいろと調べていますが、わかりません。 ファイル名を見て削除したいと考えています。 ログのファイル形式は、年日付時刻ABCファイルとなり、当日と前日のログだけを残して、他のログを削除したいのですが、、、 宜しくお願いします。

  • 改行しないEcho

    Win7x64コマンドプロンプトでまともに使えるのありますか なるたけ手間かからないのがいいです fechoは-dとかつけるのめんどい バッチかぶせるとどうせ記号とかでおかしくなりますよね

  • コマンドプロンプトのバッチについて

    WindowsのDOSなどのコマンド処理をするバッチファイルについて ですが、DOSからDB(OracleやSQL Serverなど)を起動させるバッチがあって、DBに入ってからSQLのコマンドなどを自動でさせるバッチって 何か方法はないのでしょうか?? DOS → DB起動後、自動でコマンドで動かしたいです。 細かくいうとWindowsのDOSではなくなるので、 動かなくなると思います。

  • バッチ終了時にDOS窓を閉じるコマンド

    自作バッチについて質問があるのですが、 バッチ終了時にDOSプロンプトを自動的に閉じる方法を教えて下さい。 以下の方法は知っているのですが↓ ------------------------------------------------------------ バッチのプロパティ画面の「プログラム終了時にウィンドウを閉じる」を チェックする ------------------------------------------------------------ 上記のようなやり方ではなく、バッチファイルの中に直接コマンドを書いて 設定する方法を教えて下さい。