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 回答