• 締切済み
  • すぐに回答を!

コマンドプロンプト 半角スペースを含んだ文字列の抽出

コマンドプロンプト 半角スペースを含んだ文字列の抽出 したいです。 reg quaryの結果の一部をコマンドプロンプトで抽出したいのですが、半角スペースを含んでいるからか、求めるような結果が得られません。 ●ほしい文字列: C:\Program Files\aaa bbb ccc\aa bb ●reg quaryの結果: ! REG.EXE VERSION 3.0 HKEY_LOCAL_MACHINE\SOFTWARE\aaaRegister Dir REG_SZ C:\Program Files\aaa bbb ccc\aa bb ●試したコマンド: for /f "skip=2 tokens=\3,*" %A in ('reg query %REGNAME% /v Dir') do echo %A ●結果:C:\Program どのようなコマンドが適当なのでしょうか?宜しくお願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1368
  • ありがとう数3

みんなの回答

  • 回答No.2
noname#67980
noname#67980

あ~~~、なんか変ですね。 通常スペースを含むPath指定の場合にはダブルクオートで 囲んで指定します。 試しにMS-DOSプロンプトへ スペースを含むパスを持ったファイル C:\Documents and Settings\test.txt スペースを含まないパスを持ったファイル C:\test.txt を作成し、それぞれドラッグしてみてください。 片方はダブルクオートで囲まれ、 もう片方はダブルクオート無しで表示されるはずです。 #言いたいこと伝わるかな...

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。

質問者からの補足

#言いたいこと伝わるかな... ->ありがとうございます。分かりました。 スペースを含む方は""で囲まれました。regの値も本来は""で囲まれて出力されるのでしょうか?そうでない場合、コマンド内で""で囲む方法はないでしょうか?

  • 回答No.1
noname#67980
noname#67980

Dir REG_SZ C:\Program Files\aaa bbb ccc\aa bb "C:\Program Files\aaa bbb ccc\aa" bb っとパスの部分をダブルクオートで囲んでもダメですか?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。

質問者からの補足

#言いたいこと伝わるかな... ->ありがとうございます。分かりました。 スペースを含む方は""で囲まれました。regの値も本来は""で囲まれて出力されるのでしょうか?そうでない場合、コマンド内で""で囲む方法はないでしょうか?

関連するQ&A

  • コマンドプロンプト 半角スペースを含んだ文字列の抽出

    ●ほしい文字列: C:\Program Files\aaa bbb ccc\aa bb ●reg quaryの結果: ! REG.EXE VERSION 3.0 HKEY_LOCAL_MACHINE\SOFTWARE\aaaRegister Dir REG_SZ C:\Program Files\aaa bbb ccc\aa bb ●試したコマンド: for /f "skip=2 tokens=3*" %A in ('reg query %REGNAME% /v Dir') do echo %A ●結果:C:\Program token=3-6 としても同じ結果です。 どのようなコマンドが適当なのでしょうか?宜しくお願いいたします。

  • コマンドプロンプト 全角を含んだ文字列の抽出

    ●ほしい文字列: C:\Program Files\全体\a b ●reg quaryの結果: ! REG.EXE VERSION 3.0 HKEY_LOCAL_MACHINE\SOFTWARE\goo Dir REG_SZ C:\Program Files\本体\a b ●試したコマンド: for /f "skip=2 tokens=2*" %A in ('reg query %REGNAME% /v Dir') do echo %B ●結果:C:\Program Files\全体\a 全角を含んでいると以降のスペース以下が取得できないようなのですが 全角の有無にかかわらず取得できる方法はないでしょうか? 宜しくお願いいたします。

  • 原因不明の半角スペースの追加現象

    今年から仕事でシェルスクリプトでコーディングすることになり初めて触る言語なので日々勉強しているのですが、どうしても解決方法の見つからないものが出てきてしまったので質問させて頂きます。 ファイルから行を読み込んでsql文に追加入力しようとしているのですが、抽出した単語にシングルクォーテーションを付ける際、半角スペースが一文字分シングルクォーテーション内部に出来てしまいます。 以下例です。 aaa.txt←読み込むファイル aaa,bbb,ccc,ddd←ファイル内容の簡略版 ・ ・ ・ #!/bin/sh while read LINE;do CUT1=`echo ${LINE} | cut -d , -f1`←※1 echo \'${CUT1}\'>>bbb.txt←※2 CUT2=・・・       ・       ・   同じことを繰り返す       ・ done<aaa.txt 結果 bbb.txt 'aaa ''bbb ''ccc '・・・ ※1:この部分は少々曖昧ですが、LINEに読み込んだ行の1番目のフィールド(今回の例ではaaa)を抽出してCUT1に入れようとしています。 まだまだ未熟者の為ソースがおかしいかもしれませんが、今回はそのことに関しては気にしないでください。 プログラム自体はきちんと走っています。 問題になっている点は※2の部分で、シングルクォーテーションを付けると勝手に半角スペースが追加されてしまいます。 CUT1には「aaa」と半角スペースのない状態で入っています。 sedを使ってスペースをなくそうかとも考えたのですが、何分データ量がすごい数なので少しでも走らせるプログラムを減らしたいのです。 sed以外で半角スペースをなくす方法はありますでしょうか? また、これはどんな理由で半角スペースが入ってしまうのか原因もわかりますでしょうか? 簡単な質問ですが、ご教授の方よろしくお願いいたします。 一応sedでの半角スペースを削除する方法もご教授頂けたら幸いです。

  • 入力データの半角スペースと全角スペースを区別させる方法

    データベースに文字列を保存する際、既に同じ文字列が保存されていないか事前にチェックをかけているのですが、この時半角スペースが入った文字列と、全角スペースが入った文字列を同じものと認識してしまい、これを区別したいのですが、どういった方法があるのでしょうか。 具体例を出しますと、 「AAA BBB」(間の空白は全角スペース)を入力する際、同じ文字列が同じフィールドに保存されていないか、SQLのWHERE句で「フィールド名="AAA BBB"」を指定して検索し、同じ文字列があれば警告を出しているのですが、「AAA BBB」(間の空白は半角スペース)にも検索でマッチしてしまいます。 この検索の時に「AAA BBB」をマッチさせないようにしたいのです。 OS:Linux MySQLバージョン:5.1.22 文字コード:UTF-8 です。 よろしくお願いします。

  • SQLで○○の値以外を持っているレコードを抽出しないという条件を作りた

    SQLで○○の値以外を持っているレコードを抽出しないという条件を作りたいのですが・・・ 例えばこんな感じのテーブルがあったとします。 A1 A2 A3 -- -- -- AAA AA 111 AAA AB 111 AAA BB 222 BBB BB 111 CCC AA 111 CCC AC 555 DDD BB 222 EEE AA 111 EEE AC 333 EEE BB 777 A2の列に「BB」の値"しか"持っていないレコードを抽出したいのです このテーブルで言えば返りは BBB BB 111 DDD BB 222 と期待しています。 値BBのみしか持ってない条件の作り方を御教示願えませんでしょうか。 また、A2の値も文字数以外は規則性があるわけではないので無限パターンです。 詳しい方よろしくお願いします。

  • javascriptでスペース+改行を変換

    javascriptでテキストエリアなどで入力した文字列のスペース+改行を改行のみに変換したのですがうまくいきません。 例えば$を半角スペースとすると aaaaa$ bbb$ccc$ ddd$ee は aaaaa$\nbbb$ccc$\nddd$ee となっているはずですよね? それを aaaaa\nbbb$ccc\nddd$ee として aaaaa bbb$ccc ddd$ee と出力したいです。 単純にスペースをなくす処理だとbbb$cccがbbbcccになってしまいます。 正規表現などをいろいろ調べたのですが、このように行数がたくさんある文字列の変換例が載っていなくて分かりませんでした。 よろしくおねがいします。

  • シェルスクリプト(bash)によるファイルの編集

    シェルスクリプト(bash)によるファイルの編集についてのご相談です。 私にあまりスクリプトの知識がないので申し訳ございませんが、 どなたかお知恵を拝借させてください。 よろしくお願いします。 【条件】 ・以下のような文字列を含むファイルが複数あるとします。 ・そして、その文字列は、ファイル内の不特定の行に存在します。 ※[半角スペース]、[タブ]は実際には便宜上記載していますが、実際は 本当の半角スペース、タブが入ります。 AAA[半角スペース]BBB AAA[半角スペース]CCC AAA[タブ]BBB AAA[タブ]CCC 【やりたいこと】 このとき、 AAA[半角スペース]BBB および AAA[タブ]BBB の行の下に、それぞれ、 AAA[半角スペース]DDD  と   AAA[タブ]DDD を挿入したいのですが、これをスクリプト(コマンド)でどのように行えば よいのかわからずに困っています。

  • C言語にてXMLファイルから任意部分抽出

    C言語にてXMLファイルからタブで囲まれた任意部分の文字列だけを抽出したいのですが、どうやればいいでしょうか? サンプルなどありましたらありがたいです。  <aaa>   <bbb>123/bbb>   <ccc>あああ</ccc>   <bbb>456</bbb>   <ccc>いいい</ccc>  </aaa> ・抽出したいのは、<bbb></bbb>と<ccc></ccc>で囲まれた文字列。 ・大量データの場合もあるので抽出性能は考慮したい。(基本はメモリ上で操作したい。)

  • 文字列分割

    カンマを含む項目があります。カンマまでの文字列を抽出したいです。なお、カンマの個数は未定です。 例えば A aaa,bbb,ccc ↓ P Q R aaa bbb ccc ※A,P,Q,Rは項目名 となるような、テーブルを作成したいです。(select結果でもよいです。) どうか、ご教授お願いします。

  • エクセルの文字処理

    以前に同じ様な質問があったかも知れませんが、探しきれなかったので教えてください。 A1~A4の4つのセルに以下のスペースが入った文字列が入っていた場合 A1|AAA A2|AAA BBB A3|AAA BBB CCC A4|AAA BBB CCC DDD    A   B   C   D  1|    AAA 2|AAA BBB 3|AAA BBB CCC 4|AAA BBB CCC DDD という具合にしたいのです。 条件は  ・セル内にスペースで区切られない文字列があった場合には、B列に入れる  ・それ以外はスペースで区切って、A列B列C列D列に入れる  ・文字数は3文字固定ではなく全角半角が混在 以上です。すいません宜しく願いします。