• 締切済み

コマンドプロンプトでのエスケープ文字

標記の通り、コマンドプロンプト上での エスケープ文字は何を入力すればよいのかで 困っています。 具体的には net use コマンドを利用して共有リソースに 接続しようとしているのですが、 その際に、パスワードに空白文字やダブルクォーテーションが含まれている場合、パスワードを そのままコマンドプロンプト上に打っても 所望の動作になりません。 特殊文字(|&<>等)はエスケープするのだとは思うのですが どの文字でエスケープすればよいのかどうかを 探しだすことができませんでした。 (「ダブルクォーテーションでくくる」や「^」を 前につけるというのはあるのですが、これらを 組み合わせてもパスワードに「 "|<>&」等が含まれている場合には対応できませんでした) どなたかご存知の方、よろしくお願いします。

みんなの回答

回答No.6

なんか増えていますね。 パスワード1:? なんかバグっぽいんですけど。 パスワード2:「\"" "<" "b" "|" "c」 「"」は\を前に付ける。 「スペース」は「""」で囲う。

moremore
質問者

補足

すいません。伺いたいパスワードを間違えていました。 回答No.4 の補足にも記述しましたが >ただ、パスワードが >「"\"a□<□b□|□c」(□は半角空白一文字) >の場合正しく認識しません。 この場合のパスワードのエスケープはどのようになるかを伺おうとしていました。 よろしくお願いします。 ちなみにパスワード2のエスケープは 「\"" "<" "b" "|" "c」ではなく「\"a" "<" "b" "|" "c」と考えていいですよね。 あと、変数を利用すれば解決する問題なのでしょうか? (なぜ変数を利用しないのか疑問とおっしゃっていたので) コマンドプロンプトでのエスケープについては大抵のパターンを試した結果 挙動が非常に怪しい上にしっかりとした文書が無いので 私自身仕様という名のバグだと思っています。 (が、仕様をご存じの方がいるかもしれないという希望を持って質問をしている次第です)

回答No.5

Windows2000のヘルプで「エスケープ」を検索すれば出てきます。 なぜ変数を使わないのか疑問。

moremore
質問者

補足

私の環境は Windows2000 ではありませんが XP Pro のヘルプ「エスケープ」で検索されたことは だいたい把握しています。 よろしければ具体的に、以下の場合のエスケープを 教えていただけないでしょうか? 「」で囲まれた文字列がパスワードです。 これらのパスワードを用いて net use コマンド を利用する場合をご教授ください。 下記□は半角空白を表します。 パスワード1:「/help」 パスワード2:「"a□<□b□|□c」 C:\>net use \\computer\share /user:username ???? 上記2種類のパスワードに対してエスケープした場合 「????」が何になるかをご教授ください。 また、変数を使用するとは set を利用するということでしょうか? 変数を利用しても結果は変わらないのですが。

回答No.4

「 "|<>&」の6文字がパスワードの場合、 net use \\server " \"^|^<^>^&" /user:user というのが、正しいエスケープかと思います。 あとは、応用なので、ご自分で。

moremore
質問者

補足

「"」のエスケープ文字は「\」 「|<>&」のエスケープ文字は「^」ということでしょうか? コマンドプロンプト上での特殊文字である「|<>&()」に対する エスケープ文字を「^」だと解釈してよろしいでしょうか? また、「正しいエスケープ」というのは どこかに記述されていた内容なのでしょうか? その場合、その URL を教えていただけないでしょうか? ただ、パスワードが 「"\"a□<□b□|□c」(□は半角空白一文字) の場合正しく認識しません。 この場合 "\"\\"a□^<□b□^|□c" となりますが net use コマンドを実行しても使い方が表示されてしまうだけです。 パスワードに含まれる「\」自身を「^」「\」でエスケープしても "\"\\\"a□<□b□|□c" や "\"^\\"a□<□b□|□c" で試しても認識しません。 おそらく、マイクロソフトが公表している(であろう) 正式なエスケープ文字、コマンドプロンプトでの 認識方法のページを見つけるのが一番ですが そのページが見あたりません。 どなたか、そのようなページをご存じの方は いらっしゃいませんでしょうか?

回答No.3

>(「ダブルクォーテーションでくくる」や「^」を >前につけるというのはあるのですが、これらを >組み合わせてもパスワードに「 "|<>&」等が含まれている場合には対応できませんでした) パスワードをシングルクォートで囲めば良いと思います。 net use \\server 'pass>word' /user:username

moremore
質問者

補足

パスワードに使用可能な文字には シングルクォーテーションも可能のようです。 ですので、シングルクォーテーションで囲んだ場合 今度は、シングルクォーテーションを含む パスワードに対応できなくなってしまいます。 パスワードに使用可能な文字は ほとんどの記号(ASCII)が当てはまりそうです。 きちんと調べて無くて申し訳ありませんが。

  • PowerOn
  • ベストアンサー率62% (5/8)
回答No.2

ちょっと試したけど、うまく行きませんでした。 "逃げ"なのですが、WSHでやったら出来ました。 batで八方塞がりになったら、最悪これで、、

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

コマンドに直接打つのではなくて パスワードを*にして 実行時に入力するようにしてはどうでしょう

moremore
質問者

補足

すいません。補足です。 もう少し具体的に書くと net use コマンドだけを直に実行するのではなく 他のプログラムからの流れで net use コマンドを 利用します。 そして、全体のプログラム自体はバッチ的な (つまりユーザの操作が介入しない) もので「実行時に入力」は出来ない という前提があります。 説明不足で申し訳ありません。

関連するQ&A

  • コマンドプロンプトから打てない文字があります

    windows7 hp 32bitなのですが コマンドプロンプトから¥サイン、ダブルクォーテーション、バックスラッシュ、どれも打つことが出来ません、仮想キーボードを使っても結果は同じです、一度全角から半角化してリターンを押しても消えてしまいます、ダブルクォーテーションは@になってしまいます これではパスが通せません… DOSをいじってたのがはるか昔でこんな不具合にあった記憶が無いので対処出来ません… お知恵を拝借願えないでしょうか?

  • コマンドプロンプトがすぐ消える

    共有フォルダに隠しファイル設定をして、コマンドプロンプトからパスワードを入力するのですが、他の共有パソコンではコマンドプロンプトがすぐに立ち上がって、すぐに消えてしまいます。 パスワード等が入力できません。 なにか設定があるのでしょうか?

  • コマンドプロンプトの[net use] パスワードが空白の場合は?

    コマンドプロンプトの[net use] をつかってドメイン外からドメインに参加しているサーバーに接続してバックアップをとろうと思ってるのですが、接続先のサーバーのパスワードが空白です。 (パスワードが空白ということでいろいろ言われそうですが、引き継いだものでいろいろ関わってるみたいでいまさらパスワードをつけることはできなさそうです。) パスワードが空白の場合はどう記入すればよろしいでしょうか? パスワードが施されてる場合は net use x: \\xxx-server\Backup password /user:user となりますがパスワードが空白の場合はどうすればいいのかわかりません。 どなたか教えて頂けませんでしょうか? よろしくお願いします。

  • コマンドプロンプトの文字に色をつける

     今晩は、Cの初心者です宜しくお願いします。  友人に聞くとコマンドプロンプトに表示させた文字にも色をつけることが出来ると聞きました。  エスケープシーケンスでえサイトの検索を書けたのですがヒットしません。  宜しくお願いします。

  • エスケープ、エンコード ???

    javascriptで、たとえば以下の文字列を(1)から(2)にしたいのですが可能でしょうか? (1)var text = 'ダブルクォーテーション""の前に円マーク'; (2)ダブルクォーテーション\"\"の前に円マーク' 用語として、エスケープ、エンコードなど言葉が思い当たるのですが、 違いなど理解できていないため、混乱しています。 javascriptにはどんなエスケープ関数があり、エスケープ関数はどんなことをするのか、またどんなエンコード関数あり、どういう働きをするのか知りたいです。

  • PHPのエスケープシーケンスに関して

    PHPで文字列内で(※だぶるクオーテーションおよびシングルクオーテーション)使用するエスケープシーケンスについて、質問です。 PHPでは例えば \(※バックスラッシュ)を文字列内に含めるときバックスラッシュを二つ続けて入力して print "\\"; 上記の用に記述することになると思いいます。 ただ、上記とは違い  print "  \ "; と上記のようにバックスラッシュの前後にスペースをおいて print することでバックスラッシュをエスケープせずに出力させることができます。 本当はものすごく基本的な動作だと思うのですが、 ちょとこの動きが理解できません。 オライリー本をみてもバックスラッシュはエスケープしないといけないと 記載があります。 よろしくご教授ください。

    • ベストアンサー
    • PHP
  • phpの<br>\nと\nとエスケープシーケンスについて

    現在、phpを学んでいるのですが、いきなり"<br>\n"と"\n"の違いがわからなくて困っています。\nはエスケープシーケンスで改行を意味するのですよね?<br>も改行を意味するから・・・わざわざダブルクォーテーションの中に<br>を書かなくても良いのでは・・・ と思うのですが・・・違うのでしょうか!? またエスケープシーケンスについてなのですが、 ¥を付けて表す特殊文字がエスケープシーケンスなのですね。 しかし、シングルクォーテーション内では「¥’」と「\\」だけが使える。 ダブルクォーテーション内では記述すると画面に表示されないということですが・・・。 ではエスケープシーケンスっていつ使うのですか?使い道がないような気がするのですが・・・・。 使えるのは、シングルクォーテーション内の「¥’」と「\\」だけになるのでは・・・・。 そのへんのところを教えてください。

    • ベストアンサー
    • PHP
  • コマンドプロンプトで文字入力がきかない

    コマンドプロンプトで文字入力がきかない コマンドプロンプトでの特定のコマンドの実行時に、文字入力がきかずに困っています。 通常の、例えばファイル名を指定して実行でcmdと叩いて、 pingを打ったりディレクトリ移動などは普通に出来ます。 ただし、現在実行しようとしているバッチファイルを起動するコマンドで、 パスワードの入力を求められる部分で、コマンドプロンプト上で文字入力がきかなくなるのです。 該当のウィンドウはアクティブになっており、カーソルも点滅しているのですが、 エンターキー以外、文字入力を受け付けてくれません。 ナムロックなどもかかっていないことを確認済み、再起動も何度か試しています。 他の人が(他のPC上)、同じコマンドを実行する際には特にそのような事はないようなので、 ローカル依存と思われますが、ハードウェア的には全く問題がないように思います。 このようなことはあるでしょうか? 解決方法についてご存知の方がいらっしゃいましたら教えて頂きたく、質問させて頂きました。 宜しくお願い致します。 PC環境 ・WindowsXP SP2 ・Lenovo ThinkPad X60 ・JRE1.6(JavaのRuntimeEngineを求められるバッチファイル起動のコマンドである為、念の為)

  • コマンドプロンプトでHelpの探し方を教えて

    コマンドプロンプトで HELP と入力しても表示されないコマンドの探し方を教えてください。 例えば、Net Use について調べたいとき、”NET ?”で表示されますが、単なる”HELP”では ”NET” というキーワードも表示されません。この場合”NET”と言うキーワードを知っていればよいのですが、思いつかない場合や知らない場合は困ります。 このような場合に、良い方法はないでしょうか?

  • XPathの関数「text()="value"」のダブルコーテーションをエスケープする方法は?

    お世話になります。 現在、XPathに関するプログラムを制作しています。 入力されたXPathを解析し、解析した内容に応じて特定の処理をさせるというものなのですが、text() 関数の解析で躓いています。 text()="value" ここまではわかります。 text()='value1"value2\value3' 上のケースでは、どのように記述すればいいのでしょうか? シングルコーテーションで括るという解では、シングルコーテーションとダブルコーテーションが混在している場合に対応できません。 そのプログラムではクオート文字をダブルコーテーションに限定しているので、ダブルコーテーションのエスケープ方法を探しています。 現在はバックスラッシュ(\)によるエスケープ処理で対応しています。 text()="value1\"value2\\value3" しかし、Firefox拡張「XPath Checker」で調べるとバックスラッシュによるエスケープ処理は働いていないため、 この方法は正しくない気がしています。 プログラムとしては問題なく動作していますが、XPath記法に沿っていないのは落ち着きません。 何かヒントとなる情報はないでしょうか?

    • ベストアンサー
    • XML