
批處理點名器為何只能點31個人求幫助一個點名器,但是只能點31個人,不知道怎么辦求大佬們指導(dǎo)一下,修改一下最好了救救孩子!我把代碼放下面
nclick="copycode($('code0'));">復(fù)制代碼
- @echo off
- title 點名軟件
- echo 請將名單寫在同目錄下 名單.txt,寫在一行,用中文逗號(,)隔開
- echo
- if not exist 名單.txtecho 小張,小王,小李,小劉>名單.txt
- pause
- cls
- REM 啟用延遲環(huán)境變量擴展
- setlocal enabledelayedexpansion
- :: 統(tǒng)計個數(shù)
- call :_get_count
- :: 生成隨機變量 $n$
- for /l %%i in (1,1,%nCount%) do (
- call :_rnd %%i
- )
- :: 隨機點名,每個人只點一次
- echo 點名開始!
- for /l %%i in (1,1,%nCount%) do (
- REM 從隨機變量中讀取值
- for /f delims=?? %%j in ('echo,!$%%i$!') do (set/p p=!$%%i$![%%i/%nCount%].!#%%j#!<nul)
- pause
- )
- echo 點名結(jié)束!
- pause
- goto :eof
- :: 統(tǒng)計個數(shù),生成升序變量 #n#
- goto :eof
- :_get_count
- set/a nCount=1
- :_count
- for /f delims=, tokens=%nCount% %%i in (名單.txt) do (
- set/a nCount=%nCount% + 1
- REM add env $$
- set #%nCount%#=%%~i
- echo %nCount%. %%~i
- goto :_count
- )
- set/a nCount=%nCount% - 1
- goto :eof
- :: 生成隨機變量 $n$
- goto :eof
- :_rnd
- set/a min=1
- set/a max=%nCount%
- set/a num=(%random%) %% (%max% - %min% + 1) + %min%
- if defined $%num%$ goto :_rnd
- REM add env ##
- set $%num%$=%1
- goto :eof

