批处理“set / p”返回空白

时间:2017-02-20 12:51:45

标签: batch-file

所以我的批处理代码中有一个“set / p”行,但无论我做什么,它总是返回空白。

我的代码:

@echo off

IF NOT "%1" == "admin" (
    ECHO 'Not admin'
    Pushd "%~dp0"
    copy %0 C:\

    runas /user:administrator "C:\%~n0.bat admin %COMPUTERNAME%"
)

IF "%1" == "admin" (

    set /p user= User initials: 

    ECHO Test: %user%

    wmic computersystem where caption='%2' call rename 'GLOS-%user%01'
    net localgroup administratorer %user% /add
    manage-bde -off C:
    pause
    start /b "" cmd /c del "%~f0"&exit /b
)
pause

任何人都知道为什么会发生这种情况?

提前致谢!

1 个答案:

答案 0 :(得分:1)

您必须在脚本的开头添加此内容(例如,在@eho off下方):

SETLOCAL EnableDelayedExpansion

进一步你必须围绕用户!...!而不是%...%:

ECHO Test: !user!

就是这样。有关详细信息,请查看this website