166

startURL にアンパサンドを含む Web ページを開くコマンドを使用するために、バッチ ファイルで (または Windows コマンド ラインから) アンパサンドをエスケープするにはどうすればよいですか?

二重引用符はstart;では機能しません。これにより、代わりに新しいコマンドライン ウィンドウが開始されます。

更新 1 : Wael Dalloul のソリューションが機能します。さらに、URL に URL エンコードされた文字 (たとえば、スペースは %20 としてエンコードされる) があり、それがバッチ ファイル内にある場合、'%' は '%%' としてエンコードされる必要があります。この例ではそうではありません。

コマンドラインからの例 ( CMD.EXE):

start http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8

結果として

http://www.google.com/search?client=opera 

デフォルトのブラウザで開かれ、コマンド ライン ウィンドウに次のエラーが表示されます。

'rls' is not recognized as an internal or external command,
operable program or batch file.
'q' is not recognized as an internal or external command,
operable program or batch file.
'sourceid' is not recognized as an internal or external command,
operable program or batch file.
'ie' is not recognized as an internal or external command,
operable program or batch file.
'oe' is not recognized as an internal or external command,
operable program or batch file.

プラットフォーム: Windows XP 64 ビット SP2。

4

8 に答える 8

154

&コマンドを区切るために使用されます。^したがって、を使用してエスケープできます&

于 2009-08-25T10:49:12.527 に答える
121

cmd から:

  • &次のようにエスケープされます: ^&(@Wael Dalloulの回答に基づく)
  • %エスケープする必要はありません

例:

start http://www.google.com/search?client=opera^&rls=en^&q=escape+ampersand%20and%20percentage+in+cmd^&sourceid=opera^&ie=utf-8^&oe=utf-8

バッチファイルから

  • &次のようにエスケープされます: ^&(@Wael Dalloulの回答に基づく)
  • %次のようにエスケープされます:%%(OPの更新に基づく)

例:

start http://www.google.com/search?client=opera^&rls=en^&q=escape+ampersand%%20and%%20percentage+in+batch+file^&sourceid=opera^&ie=utf-8^&oe=utf-8
于 2015-01-15T09:59:31.007 に答える
32

ダミーの最初の引数を指定する場合は、引用符で囲むことができます。

startこの場合、最初の引数が引用符で囲まれている場合、新しいコンソール ウィンドウのタイトルとして扱われるため、ダミーの最初の引数を指定する必要があることに注意してください。したがって、次のように動作するはずです (ここでは動作します)。

start "" "http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8"
于 2009-08-25T10:41:07.143 に答える
20
explorer "http://www.google.com/search?client=opera&rls=...."
于 2009-08-25T10:41:43.117 に答える