1. ホーム
  2. windows

[解決済み] バッチファイル内のアンパサンドをエスケープするには?

2022-04-24 05:44:36

質問

バッチファイル内(またはバッチファイルから)でアンパサンドをエスケープする方法。 を使用するために、Windowsのコマンドラインを使用します。 start コマンドで URLにアンパサンドが含まれるウェブページを開くには?

でダブルクォートを使用することはできません。 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 bit SP2。

解決方法は?

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 の 答え )
  • % はこのようにエスケープされます。 %% (OPsの更新に基づく)

一例です。

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