curl --proxy "" は、curl が空の引数を受け取ることに依存しています。このコマンドは Windows のシェルによって動作が異なることがあります。従来の Windows PowerShell のネイティブコマンド受け渡しは、PowerShell 7.3 で導入された新しいモードと同じようには空の文字列を保持しないためです。

空の値が失われると、次の引数がプロキシの値として消費される可能性があります。これはネットワーク上の判断よりも前の、コマンドライン解析の問題です。

直接 curl を実行する場合は、空でないバイパス引数を使うと意図を渡しやすくなります。

curl.exe --noproxy '*' https://example.com/

curl.exe を意識して使ってください。Windows PowerShell は curl を別のコマンドのエイリアスとして解決することがあります。引用符で囲んだアスタリスクは、curl のすべてのホストに対するバイパス値として渡されます。

より複雑なネイティブ引数が必要なスクリプトでは、PowerShell のバージョンとそのネイティブ引数渡しモードを確認してください。cmd の例をそのままコピーしても、curl が同じ引数リストを受け取ったことにはなりません。

関連記事