2017-08-24 3 views
-1

私はすでに人々に0から9までの選択方法を知らせていますが、もっとオプションが必要です。
あなたはどんな考えがありますか?
私はすでに10や11のような数字を追加してみましたが、10 = 1と11 = 1のように最初の番号を選択するだけです。
私は方法がより多くの選択肢を持っており、サブディレクトリが本当に悪く見えるので、これは修正が必要です。
どこでも検索しました。私は人々にバッチファイルを選択させる方法を教えてください

これは、あなたが望んでいたように0から9まで行くことができるコード(私は初心者の悪いイムを知っている)

:net 
ECHO off  
cls  
:netstart  
ECHO.  
ECHO Net...  
ECHO 0. Accounts  
ECHO 1. Config  
ECHO 2. Continue  
Echo 3. Help  
Echo 4. Localgroup  
Echo 5. Pause  
Echo 6. Session  
Echo 7. Statistics  
Echo 8. Stat  
Echo 9. View  
set /p choice=  
rem if not '%choice%'=='' set choice=%choice:~0;1%  
if '%choice%'=='' ECHO "%choice%" Is Not An Option  
if '%choice%'=='0' goto 0  
if '%choice%'=='1' goto 1  
if '%choice%'=='2' goto 2  
if '%choice%'=='3' goto 3  
if '%choice%'=='4' goto 4  
if '%choice%'=='5' goto 5  
if '%choice%'=='6' goto 6  
if '%choice%'=='7' goto 7  
if '%choice%'=='8' goto 8  
if '%choice%'=='9' goto 9  
ECHO.  
goto netstart  
:0  
cls  
ECHO Wait...  
net accounts  
pause  
exit  
:1  
cls  
ECHO Wait...  
net config  
pause  
exit  
:2  
cls  
ECHO Wait...  
net continue  
pause  
exit  
:3  
cls  
ECHO Wait...   
net help  
pause  
exit  
:4  
cls  
ECHO Wait...  
net localgroup  
pause  
exit  
:5  
cls  
ECHO Wait...  
net pause  
pause  
exit  
:6  
cls  
ECHO Wait...  
net session  
pause  
exit  
:7  
cls  
ECHO Wait...  
net statistics  
pause  
exit  
:8  
cls  
ECHO Wait...  
netstat  
pause  
exit  
:9  
cls  
ECHO Wait...  
net view  
pause  
goto end  
:end  
cls  
exit  
+0

あなたはこれまで自分でこれを解決しようとしましたか? – Ian

+0

ユーザーは任意の文字列を入力できます。たとえば、「10」または「10」。バッチファイルでユーザー入力を取得する例を見つけるのは簡単なはずです。 – Julien

答えて

1

は、この作業を行うのですか?

@Echo Off 

:StartNet 
ClS 
Echo. 
Echo Net... 

Echo 0. Accounts 
Echo 1. Computer 
Echo 2. Config 
Echo 3. Continue 
Echo 4. File 
Echo 5. Group 
Echo 6. Help 
Echo 7. Helpmsg 
Echo 8. Localgroup 
Echo 9. Pause 
Echo 10. Session 
Echo 11. Share 
Echo 12. Start 
Echo 13. Statistics 
Echo 14. Stop 
Echo 15. Time 
Echo 16. Use 
Echo 17. User 
Echo 18. View 

Set/P "selection=" 

GoTo %selection% 2>Nul 

Echo. 
"%choice%" is not an option 
Timeout 3 /NoBreak>Nul 
GoTo StartNet 

:0 
ClS 
Echo Wait... 
Net Accounts 
Timeout -1 
Exit/B 

:1 
ClS 
Echo Wait... 
Net Computer 
Timeout -1 
Exit/B 

:2 
ClS 
Echo Wait... 
Net Config 
Timeout -1 
Exit/B 

:3 
ClS 
Echo Wait... 
Net Continue 
Timeout -1 
Exit/B 

:4 
ClS 
Echo Wait... 
Net File 
Timeout -1 
Exit/B 

:5 
ClS 
Echo Wait... 
Net Group 
Timeout -1 
Exit/B 

:6 
ClS 
Echo Wait... 
Net Help 
Timeout -1 
Exit/B 

:7 
ClS 
Echo Wait... 
Net Helpmsg 
Timeout -1 
Exit/B 

:8 
ClS 
Echo Wait... 
Net Localgroup 
Timeout -1 
Exit/B 

:9 
ClS 
Echo Wait... 
Net Pause 
Timeout -1 
Exit/B 

:10 
ClS 
Echo Wait... 
Net Session 
Timeout -1 
Exit/B 

:11 
ClS 
Echo Wait... 
Net Share 
Timeout -1 
Exit/B 

:12 
ClS 
Echo Wait... 
Net Start 
Timeout -1 
Exit/B 

:13 
ClS 
Echo Wait... 
Net Statistics 
Timeout -1 
Exit/B 

:14 
ClS 
Echo Wait... 
Net Stop 
Timeout -1 
Exit/B 

:15 
ClS 
Echo Wait... 
Net Time 
Timeout -1 
Exit/B 

:16 
ClS 
Echo Wait... 
Net Use 
Timeout -1 
Exit/B 

:17 
ClS 
Echo Wait... 
Net User 
Timeout -1 
Exit/B 

:18 
ClS 
Echo Wait... 
Net View 
Timeout -1 
Exit/B 
+0

OMGありがとう! – AuditionCSBlock

0

choiceは、環境変数の名前としてよくない理由であるコマンドCHOICEがあります。このコマンドのヘルプについては、コマンドプロンプトウィンドウchoice /?で実行してください。それは、ユーザによる間違った入力に対するフェイルセーフであるという利点を有する。参照してください代わりにecho.echo/が使用されている理由については、どのようerrorlevelとの組み合わせでCHOICEは、前のコマンド/実行可能な作品の終了/リターンコードを保持してBatch file choice loop on unexpected inputに答える

@echo off 
goto StartNet 

:NextRun 
echo/ 
pause 

:StartNet 
cls 
echo/ 
echo Net ... 
echo/ 
echo A ... Accounts 
echo B ... Computer 
echo C ... Config 
echo D ... Continue 
echo E ... File 
echo F ... Group 
echo G ... Help 
echo H ... Helpmsg 
echo I ... Localgroup 
echo J ... Pause 
echo K ... Session 
echo L ... Share 
echo M ... Start 
echo N ... Statistics 
echo O ... Stop 
echo P ... Time 
echo Q ... Use 
echo R ... User 
echo S ... View 
echo/ 
echo X ... Exit 
echo/ 
%SystemRoot%\System32\choice.exe /C ABCDEFGHIJKLMNOPQRSX /N /M "Your choice: " 
if errorlevel 20 exit /B 
cls 
echo Wait ... 
echo/ 
goto Option%ERRORLEVEL% 

:Option1 
%SystemRoot%\System32\net.exe Accounts & goto NextRun 
:Option2 
%SystemRoot%\System32\net.exe Computer & goto NextRun 
:Option3 
%SystemRoot%\System32\net.exe Config & goto NextRun 
:Option4 
%SystemRoot%\System32\net.exe Continue & goto NextRun 
:Option5 
%SystemRoot%\System32\net.exe File & goto NextRun 
:Option6 
%SystemRoot%\System32\net.exe Group & goto NextRun 
:Option7 
%SystemRoot%\System32\net.exe Help & goto NextRun 
:Option8 
%SystemRoot%\System32\net.exe Helpmsg & goto NextRun 
:Option9 
%SystemRoot%\System32\net.exe Localgroup & goto NextRun 
:Option10 
%SystemRoot%\System32\net.exe Pause & goto NextRun 
:Option11 
%SystemRoot%\System32\net.exe Session & goto NextRun 
:Option12 
%SystemRoot%\System32\net.exe Share & goto NextRun 
:Option13 
%SystemRoot%\System32\net.exe Start & goto NextRun 
:Option14 
%SystemRoot%\System32\net.exe Statistics & goto NextRun 
:Option15 
%SystemRoot%\System32\net.exe Stop & goto NextRun 
:Option16 
%SystemRoot%\System32\net.exe Time & goto NextRun 
:Option17 
%SystemRoot%\System32\net.exe Use & goto NextRun 
:Option18 
%SystemRoot%\System32\net.exe User & goto NextRun 
:Option19 
%SystemRoot%\System32\net.exe View & goto NextRun 

+0

Thx!このコミュニティはとても速いです! – AuditionCSBlock

関連する問題