コマンドを使用start
してURLにアンパサンドを含むWebページを開くために、バッチファイルで(またはWindowsコマンドラインから)アンパサンドをエスケープするにはどうすればよいですか?
二重引用符は、では機能しませんstart
。代わりに、新しいコマンドラインウィンドウが開始されます。
更新1:Wael Dalloulのソリューションが機能します。さらに、URLエンコードされた文字(スペースが%20としてエンコードされているなど)がURLにあり、それがバッチファイル内にある場合、 '%'は '%%'としてエンコードする必要があります。これは、例には当てはまりません。
例、コマンドライン(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。
+
どうしたらいいですか?
start "http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8"
ため、PowerShellで機能します
start
あり、考えずに適用すると、引数の引用が失敗します。全体として、引数を引用符で囲む方が、エスケープする必要のあるすべての文字をエスケープするよりも簡単でエラーが発生しにくいと思います。