質問: %pswd% pause>nul exit rem ===========================
回答: echoing !に問題がある場合は、 enabledelayedexpansion が設定されています。 enabledelayedexpansion が設定されている場合、!は特殊文字として扱われ、は^でエスケープする必要があります。^は特殊文字でもあるため、2回使用する必要があります。 感嘆符のエスケープ シェルがenabledelayedexpansionモードで実行されている場合、!文字は変数を表すために使用されるため、通常の文字として扱いたい場合はエスケープ(2回)する必要があります。次のようにする必要があります。 ^^! enabledelayedexpansionなし:@echo off echo 1q2w!3e 出力:1q2w!3e enabledelayedexpansionあり、エスケープなし:@echo off setlocal enabledelayedexpansion echo 1q2w!3e 出力:1q2w3e 出力にmissing!があることに注意してください。enabledelayedexpansionとエスケープの場合:@echo off setlocal enabledelayedexpansion echo 1q2w^^!3e 出力:1q2w!3e enabledelayedexpansion は、次の3つの方法で設定できます。 バッチファイルでsetlocal enabledelayedexpansionを使用する cmdを/vスイッチで開始します。 hklmまたはhkcuの下のレジストリ内 [hkey_current_user\software\microsoft\command processor] "delayedexpansion" =(reg_dword) 1 =有効0 =無効(デフォルト) ソース enabledelayedexpansion 、 エスケープ文字、区切り文字、引用符