基于变量的当前值创建文本文件,创建一个文本文件,其内容为该同一变量的先前值

时间:2012-11-21 17:41:26

标签: batch-file

代码如下,

@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”。 请告诉我这背后的原因以及如何避免这种情况? 在此先感谢.........

1 个答案:

答案 0 :(得分:1)

当你使用variable set in parentheses context时需要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