1

コードは次のとおりです。

@echo off 
if not exist c:\Locker (
    cd/
    md Locker
    cd windows\system32
    echo Set the password for your locker:-
    set /p pass=
    echo %pass%>text.txt
) else (
    echo Folder is created
)

ここで、pass = 12345 に設定したとします。テキスト ファイルにはそのような値はありません。再度プログラムを実行して pass=abcde に設定すると、テキスト ファイルには値が「1234」と表示されます。これの背後にある理由と、これを回避するために何をすべきか教えてください?? 前もって感謝します.........

4

1 に答える 1

1

括弧のコンテキストで変数セットを使用しているため、SETLOCAL ENABLEDELAYEDEXPANSION が必要です。

@echo off 
SETLOCAL ENABLEDELAYEDEXPANSION
if not exist c:\Locker (
    cd/
    md Locker
    cd windows\system32
    echo Set the password for your locker:-
    set /p pass=
    echo !pass!>text.txt
) else (
    echo Folder is created
)
ENDLOCAL
于 2012-11-22T12:20:06.403 に答える