1

私はバッチで新しいです。バッチを使用してファイルの行を編集しようとしています。ただし、この行にはスペースと予約文字(記号)が含まれています。基本的には、に変更し=たいと思います。これは、「すべてのアイデアに感謝」という名前のファイルにあります。これが 私が今持っているものです。PasswordComplexity = 1PasswordComplexity = 0export.cfg

setlocal enabledelayedexpansion

FOR /F "usebackq delims=" %%a IN ("export.cfg") DO (
set "line=%%a" & echo !line:(PasswordComplexity = 1)=(PasswordComplexity = 0)!
)>>"import.cfg"
4

1 に答える 1

1

残念ながら、等号を単にネイティブの Windows ソリューションだけに置き換える=ことはできません。https://stackoverflow.com/a/9561827/891976を参照してください。

PasswordComplexity を含む行に 1 桁しかない場合は、次のようにすることができます。

setlocal EnableExtensions EnableDelayedExpansion

for /f "usebackq delims=" %%A in ("export.cfg") do (
    set "line=%%A"
    set "found=false"
    for /f "delims=" %%B in (echo %%A^|find "PasswordComplexity = 1") do set "found=true"
    if !found!==true (
        echo !line:1=0!
    ) else (
        echo !line!
    )
)>>"import.cfg"

endlocal

また、引用符の外側で文字どおり特殊文字を使用する場合は常に、エスケープする必要があることに注意してください。http://www.robvanderwoude.com/escapechars.phpを参照してください。

于 2013-03-01T14:20:34.727 に答える