2012-11-17 2 views
1

Я пытаюсь создать пакетный файл, но по неизвестной причине, когда процесс выполняется, переменная %UT:~47% остается пустой и заполняется только после второго выполнения. Если я выполнил это, как только результат эха будет равен ~ 47, но во второй раз результат результата показывает Да или НЕТ (Oui или Non на французском). Кто-нибудь знает, почему?Пакетный файл, деактивированный Пользователи

Первое условие работает отлично, если нет параметров. Но если я выполнил свою партию с именем пользователя в параметре, проверьте, активирована ли учетная запись пользователя или нет. Я положил строку со словом «Compte», который фактически стоит для учетной записи на английском языке, в файле C: \ user.txt, но 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% 
) 

ответ

0

Это потому, что вы устанавливаете переменную "UT" в течение цикла, для поиска «партия задерживается расширение "для получения дополнительной информации. Кроме того, вам, вероятно, не нужно сначала перенаправлять вывод в файл, вы можете использовать for /f "tokens=* eol=" %%a in ('net user add %%U') для непосредственного захвата вывода в переменной.

+0

Спасибо за решение! Действительно оценен :) Ваше решение работает Perfect –

Смежные вопросы