2014-03-27 22 views
0

我正在嘗試編寫一個批處理腳本,該批處理腳本使用用戶提示將新用戶添加到計算機以獲取信息。我處於正確創建用戶的位置,但無論我嘗試什麼,「全名」和「說明」字段都不會填充。我似乎無法讓它將%fullname%變量傳遞給net user命令或wmic命令。如果我只是將引用文本輸入到任何一個地方,都會正確添加信息。此外,如果有更好的方式來做回聲這樣的話,將不勝感激,佔用了太多的線IMO。 :)使用變量在批處理中設置用戶帳戶「全名」和「描述」

:User 

echo. 
echo Please Input Username... 
echo. 

set /p username=Username: 

echo. 
echo Please Confirm Username... 
echo. 

set /p confirm=Username: 

if '%username%' == '%confirm%' (
echo. 
echo Please Input User Full Name... 
echo. 

set /p fullname=Full Name: 

echo. 
echo Please Input User Description... 
echo. 

set /p description=Description: 

echo Creating %username%... 
net user %username% * /add /active:yes /fullname:%fullname% /comment:%description% /passwordchg:no /expires:never 
wmic useraccount where "Name='%username%'" set PasswordExpires=FALSE 
wmic useraccount where "Name='%username%'" set FullName=%fullname% 

此腳本創建用戶就好了,但全名和註釋字段爲空。

回答

0

問題已解決。顯然,我的if語句的括號將一切搞亂了。無論出於何種原因,全名和描述變量都是空白的。我猜你不能在if語句中做一個集合嗎?

無論如何,改變到這個已經解決了這個問題,它現在完美的工作。

:User 

echo. 
echo Please Input Username... 
echo. 

set /p username=Username: 

echo. 
echo Please Confirm Username... 
echo. 

set /p confirm=Username: 

if '%username%' == '%confirm%' goto User1 

goto User 

:User1 
echo. 
echo Please Input User Full Name... 
echo. 

set /p fullname=Full Name: 

echo. 
echo Please Input User Description... 
echo. 

set /p description=Description: 

pause 
echo Creating %username%... 
net user %username% * /add /active:yes /fullname:"%fullname%" /comment:"%description%" /passwordchg:no /expires:never 
wmic useraccount where "Name='%username%'" set PasswordExpires=FALSE 
相關問題