0

私はこの文字列を持っています。これを str と呼びます。これは、この XinfoX のように見えるかもしれません。バッチを使用して、「X」をこの記号「|」に置き換えるコマンドが必要です (パイプ記号)。私はこれを試しましたが、cmdは閉じたりクラッシュしたりします。

前もって感謝します

4

2 に答える 2

0

変数の編集/置換を使用詳細はこちら

set str=XinfoX
echo %str:X=^|%

C:\>echo %str:X=^|%
|info|
于 2013-02-02T13:53:38.493 に答える
0

|キャラクターがパイプ演算子として機能するため、コマンドがクラッシュしています。しかし、代わりにリテラル文字として使用したいと考えています。文字はエスケープするか引用符で囲む必要があります。

set str=XinfoY

:: using quotes
set "str=%str:X=|%"

:: using escape
set str=%str:Y=^|%

文字列の一部が引用され、一部が引用されていないような引用符が文字列に含まれている場合、状況は複雑になる可能性があります。解決策は、遅延展開を使用することです。

setlocal enableDelayedExpansion
set str="Xinfo1X"info2X
set "str=!str:X=|!"
于 2013-02-02T14:35:32.873 に答える