2012-11-17 4 views
1

일괄 처리 파일을 만들려고하고 있지만 프로세스가 실행될 때 알 수없는 이유로 %UT:~47% 변수가 비어 있고 두 번째 실행 후에 만 ​​채워집니다. 내가 이것을 실행하면 echo 결과는 ~ 47이지만 두 번째 결과 결과는 예 또는 아니오 (Oui 또는 Non in french)로 표시됩니다. 왜 그런지 알아?비활성화 된 사용자 삭제 일괄 파일

매개 변수가없는 경우 첫 번째 조건은 완벽하게 작동합니다. 그러나 매개 변수에 사용자 이름을 사용하여 일괄 처리를 실행하면 사용자 계정이 활성화되었는지 여부를 확인합니다. 나는 C : \ user.txt 파일에서 영어로 계정을 실제로 지키는 단어 'Compte'를 사용했다.하지만 set/p는 버그가있는 것 같다. 내 echo 명령은 ~ 47을 비어 있지만 파일 C로 보낸다. : \ User.txt를 영어에서

(Compte : actif         Oui or Non) 

를 포함 당신이 배치 지연 "을 검색, for 루프에서 변수"UT "로 설정되어 있기 때문입니다

(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

입니다 확장 "을 클릭하십시오. 또한 출력을 먼저 파일로 재지 정할 필요가없는 경우 for /f "tokens=* eol=" %%a in ('net user add %%U')을 사용하여 변수의 출력을 직접 캡처 할 수 있습니다.

+0

해결책 주셔서 감사합니다. 정말 감사드립니다. 당신의 솔루션은 완벽하게 작동합니다. –