• ベストアンサー

DOSコマンドのダブルクォーテーションの扱い

kmb01の回答

  • kmb01
  • ベストアンサー率45% (63/138)
回答No.1

エスケープは^です。 findstr ^"! a.txt >b.txt でどうでしょう

noname#191412
質問者

お礼

ありがとうございます。 ご回答を参考にいろいろやってみたら出来ました。 検索したい文字は「"!」の2文字でした。 結果をご報告したいと思います。 OKだったもの findstr ^"\^"!^" a.txt findstr \^"! a.txt 以下待ちになるもの findstr ^"! a.txt findstr "^"!" a.txt findstr ^"!^"^" a.txt findstr ^" a.txt コンソールには表示できるがリダイレクションでエラーになるもの findstr \"! a.txt >b.txt 「"」を検索するには「\^」をつけるということでしょうか。 「windowsヘルプ」の「文字列リテラル」のページでは 「\"」が二重引用符「\^」がカレットと別れています。 なぜ両方が必要なのか解説して下さる方いらっしゃいませんでしょうか。修正本数が莫大なので、理解しないで手をつける事が出来ない状態なので。 ”と’の違いもお解りになりましたらお願いしたいです。

関連するQ&A

  • DOSのfindstrで「あ」の処理がおかしい?

    DOSのfindstrコマンドについての疑問です。 「a.txt」と「b.txt」が下記のような内容になっています。 ・「a.txt」の中身 あ い う ・「b.txt」の中身 あ い う え お このときに「findstr /g:a.txt b.txt」を実行すると以下のような実行結果になりました。 ------------------------------ C:\>findstr /g:a.txt b.txt い う ------------------------------ 期待する結果としては「あいう」が全部出てくるような気がするのですが。。 原因について解る方教えてください。 ちなみに上記の結果については  Windows2000  WindowsXP で確認しました。 よろしくお願いします。

  • Dosコマンドが分かりません

    Dosコマンドについて、色んなサイトを見てもよく分からない点をお聞きしたいと思います。 1)Dosプロンプト画面で「再起動」コマンドは無いのでしょうか?rebootとか打っても駄目です。UnixのX-Windowでは、rebootで再起動になったのですが。 2)以前Unixを勉強した際に、コマンドについては、 ユーザ側 - シェル - カーネル という図式が あったのですが、Winでも同じような仕組みなのでしょうか?またシェルは何を使っているのでしょうか? 3)内部コマンドと外部コマンドの違いは何ですか? よろしくお願いします。

  • 【DOSコマンド】for の デリミタにダブルクォーテーションを使うには

    下記のような1行だけ書かれたテキストファイルがあり、その中からダブルクォーテーションで囲まれた部分を抜き出そうとしています。 --【abc.txt】----------------------------------------------------------- Command Line: "C:\Program Files\test\test.exe" ---ここまで------------------------------------------------------------- (C:\Program Files\test\test.exe を抜き出したい) DOSコマンドのfor文を使って抜き出そうとしたのですがダブルクォーテーションをどうやってデリミタに指定したらいいのかわかりません。   for /f 'delims=" tokens=2' %i in (test.txt) do @echo %i  とか   for /f "delims="" tokens=2" %i in (test.txt) do @echo %i など いろいろやってみたのですがエラーが出ました。 試しにテキストファイルのダブルクォーテーションを”+”に置き換えて試したところうまく出来たので、デリミタの指定の仕方だけだと思うのですが、どうしてもわかりません。 Command Line: +C:\Program Files\test\test.exe+   に対して for /f "delims=+ tokens=2" %i in (test.txt) do @echo %i はうまく出来ました。 どなたかご享受願えませんでしょうか。 よろしくお願いします。

  • Windows Dosコマンドで

    WinXP HE あるいは PEでのお話です。 Dosコマンドで(バッチ処理をさせたいのですが)、 あるテキストファイルの1行目の先頭文字2文字を 切り取って標準出力する方法はあるのでしょうか? いろいろ調べてみたのですが、 UNIXほど強力なテキストエディット機能が無いようで困っています。

  • DOSプロントのeditコマンド

    DOSプロントについて教えてください。 type ***.txt とすることによってテキストファイルの中身が表示されますが、行数が長いために画面上に収まりきらず、すべてを見ることが出来ません。これを解消するためにはどのようにすればよいでしょうか。 また、 edit ***.txt あるいは edlin ***.txt としても「コマンドまたはファイル名が違います.」と表示されてこれらのコマンドを使用することが出来ません。これ以外にもファイルの中身を編集できるコマンドが存在するでしょうか? ちなみに、今現在、OSが動かない状態です。"safe mode command prompt only"で起動している状態です。

  • DOSコマンドについて

    DOSコマンドで下記の2つを実現したくて色々と 調べてみたのですがわかりませんでした。 (1)バッチファイルを実行したら、DOSプロンプトの  画面が立ち上がり、検索したい文字を入力できる  状態にする。 (2) (1)で入力された文字列が2文字以上だった場合は  エラーメッセージを表示し、再度入力させる。 (3)(1)で入力した文字列を任意のファイル内で検索し、  あれば大文字⇒小文字に変換する。 echoとpromptというコマンドを使って入力画面を 表示させることができるのかと思いましたが なかなかうまくいかない状態でした。 何か参考になるサイトがあれば教えて頂ければ幸いです。

  • findstrでヒットした1行前の文字を拾いたいです。

    findstrでヒットした1行前の文字を拾いたいです。 Windows文字検索コマンドのfindstrがあります。 > findstr "ヒットしたい文字" c:\hoge.txt で、hoge.txtの「ヒットしたい文字」を取り出せますが、 ヒットした1行前の文字を抜き出す方法はありますでしょうか? unixのgrepだと"-1"のオプションで1行前の文字摘出ができました。 findstrのオプションでは無さそうなので代替案がありましたら お願いします。

  • DOSコマンドの動き

    こんにちわ、プログラム初心者です。 perlプログラムで、現在 `query session /server:[サーバー名] | grep -c Active >name.txt`; で、DOSコマンドを利用してActiveの数を取得しています。DOSを利用することで、実行毎にデスクトップ画面に表示されてしまいます。なのでなんとかしてこの表示を消したいので方法を探しています。 DOSを使わないでこのActiveを取得できる方法がまったく思いつかない状態です。どんな言語ならできるんでしょうか?なんの言語でもいいのでアドバイスをください。お願いします。

  • 変数にダブルクォートがあたらダブルクォートを二つ重ねる

    ある変数の中身が「カルテに"記載"あり」のように、ダブルクォートが含む場合、ダブルクォートを二つ重ねたいです。 例1 変換前「カルテに"記載"あり」 変換後「カルテに""記載""あり」 例2 変換前「"カルテに記載あり"」 変換後「""カルテに記載あり""」 ご教授願います。

  • DOSコマンドでの文字列操作

    DOSコマンドについての質問です 001.txt というファイルがあり、 ファイルの内容は以下のように、 日時とTEL番号が、記載されています 以下001.TXTの内容 -------------------------------------- 20120202103024035555333301 20120203023015034444222202 20120302012433033333111103 20120410231455032222999904 20120522210427031111888805 -------------------------------------- これを、日付、時間、電話番号、Seq番号ごとに、 ダブルクォーテーションでくるんで 以下のように、ファイルに出力したいのですが、 うまくいきません。 どのようなコマンドを作成すればよいでしょうか? -------------------------------------- "20120202","103024","0355553333","01" "20120203","023015","0344442222","02" "20120302","012433","0333331111","03" "20120410","231455","0322229999","04" "20120522","210427","0311118888","05" --------------------------------------