二重引用符と大なり記号を任意のコマンドに渡すには、いくつかの方法があり'"'
ます"\""
。">"
しかし、それらを一緒に渡そうとすると
C:\>echo "\">"
The system cannot find the path specified.
と同じ"\"\>"
。一重引用符を使用して動作させることもできますが、すでに引用符を扱う作業が非常に多いため、すべてを二重引用符で囲みます。
それを逃れる方法はありますか?
私はwindows7を使用していますが、これは下位互換性の「機能」であると信じているため、この情報が関連しているかどうかはわかりません.
編集1:
エンドロが正解だと思ったのに…でも、そう簡単にはいかない。文字列にエスケープされた二重引用符があるかどうかによって、 CMD^>
の扱いが異なります。誰もが理由を知っていますか?! または別のエスケープ方法ですか?
C:\>sh echo "\"^>"
">
C:\>sh echo "a^>"
a^>
C:\>echo "\"^>"
"\">"
C:\>echo "a^>"
"a^>"
^
編集2:文字列を囲む引用符の前に使用して、Monacraftが提案したテストケースを次に示します
C:\>echo ^"a/>"
The system cannot find the path specified.
(we still need to escape that > symbol)
C:\>echo ^"a/^>"
"a/>"
(work fine without \" in the string)
C:\>echo ^"\"/^>"
"\"/^>"
(add a single \" and the ^> escaping stop to works)
C:\>echo ^""/^>"
""/^>"
(ok, using ^ before the string means i dont have to escape the " anymore)
C:\>echo ^"^\"/^>"
"\"/^>"
(but what if i have an actual \" in my input that i have to escape... would ^\ prevent this from happening? nope)