1

我正在尝试构建一个批处理文件,但是由于未知原因,当执行该过程时,该变量%UT:~47%保持为空,并且仅在第二次执行后才被填充。如果我执行 This 一旦回显结果为〜47,但第二次结果结果显示是或否(法语中的 Oui 或 Non)。有谁知道为什么?

第一个条件完美,如果没有参数。但是如果我在参数中使用用户名执行我的批处理,它会检查用户帐户是否被激活。我在文件 C:\user.txt 中放置了实际代表英语帐户的单词“Compte”的行,但 set /p 似乎有问题,因为我的 echo 命令给我 ~47 为空,但文件 c :\user.txt 包含

(Compte : actif                                 Oui or Non)

用英语是

(Account : active                                Yes or No)

@echo off
::if no parameter
if "%~1" == "" echo Please Indicate an User to delete ! & exit /b 0
for %%U in (%*) do (
    net user %%U | find "Compte">c:\user.txt || echo can't find user %%U
    set /p UT=<c:\user.txt
    echo %UT:~47%
)
4

1 回答 1

0

这是因为您在 for 循环中设置了变量“UT”,请搜索“批量延迟扩展”以获取更多信息。此外,您可能不需要先将输出重定向到文件,您可以使用for /f "tokens=* eol=" %%a in ('net user add %%U')直接捕获变量中的输出。

于 2012-11-18T01:26:44.867 回答