求 批处理 for 巧用实例

\u6279\u5904\u7406\uff0cfor\u5faa\u73af\u600e\u4e48\u7528\u5440\uff0c\u6709\u5b9e\u4f8b

@echo off
set /p x=\u8bf7\u8f93\u5165\u4e00\u4e2a\u53d8\u91cf:
for /l %%a in (1 1 %x%) do md %%a


\u4ee3\u7801\u4fdd\u5b58\u4e3a \u6279\u5904\u7406\u5373\u53ef

DIY\u7231\u597d\u8005--\u597d\u5de5\u5177\u81ea\u5df1\u505a\u4e4b\u6279\u5904\u7406\u7684\u6781\u9650\u5e94\u7528\uff081\uff09
http://myblogforyou.blog.sohu.com/54176226.html

\u9ad8\u7ea7\u6559\u7a0b\uff0c\u54c8\u54c8

首先说明我不是高手,我最近就是在巩固批处理中For的用法,希望大家一起学习!

楼主for虽然参数不多(/D /R /L /F),这个你可以从cmd中查看,个人感觉里面的解释很好的(for /?),但用法很广泛,一时也很难说得清楚,其中/F用途最广泛,这样吧我留两个例子你看一下,你也可以翻看我在百度的回答记录,我最近就是想巩固一下For的用法,在我的回答的批处理问题中有好多for的使用,有什么不知道大家再一起学习一下好吗?

这个可以全盘搜索tian.exe找到后打开其所在的目录。
@echo off&setlocal Enabledelayedexpansion
set D=cdefghijklmnopqrstuvwxyz
FOR /L %%i IN (0,1,23) DO (
for /f "delims=" %%i in ('dir /a/s/b "!D:~%%i,1!:\tian.exe"') do start "" "%%~dpi"
)
pause

这个是双色球仿真模拟摇奖器,它能完全模拟双色球的开奖过程开奖。

@echo off&setlocal Enabledelayedexpansion&mode con: cols=45 lines=18&color 0e
:KaiShi
cls&set /a nu=0&set shu=
echo.&echo ●●●双色球摇奖器●●●&echo.&echo 请输入你的预选号码,用逗号隔开!&echo.&echo 如果输入为空,将默认所有的号码为你的预选号!&echo.
set /p shu=你的号码:
if not "%shu%"=="" goto ZI
set shu=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33
:ZI
set Hao=%shu%
echo 你输入的预选号码:【%Hao%】>必中.txt&echo.>>必中.txt
for %%i in (%shu%) do set /a nu+=1
if %nu% lss 6 cls&cls&echo.&echo ●●●双色球摇奖器●●●&echo.&echo 你输入的号码是:【%Hao%】&echo.&echo 输入的号码不能少于6个,按任意键重新输入!&pause>nul&goto KaiShi
for %%i in (%shu%) do if %%i lss 17 goto XHp
cls&echo.&echo ●●●双色球摇奖器●●●&echo.&echo 你输入的号码是:【%Hao%】&echo.&echo 输入的号码中至少要有一个小于17!&echo.&echo 按任意键重新输入!&pause>nul&goto KaiShi
:XHp
for %%i in (%shu%) do if %%i GTR 33 cls&echo.&echo ●●●双色球摇奖器●●●&echo.&echo 你输入的号码是:【%Hao%】&echo.&echo 有没有搞错?双色球有大于33的号???,按任意键重新输入!&pause>nul&goto KaiShi
for %%a in (%shu%) do if 1%%a lss 20 (set shu0=!shu0!,0%%a) else set shu0=!shu0!,%%a
set shu0=%shu0:~1%&set shu=%shu0%
set /a o=0&set /a v=0
:XH2
set Qian=%Shu%&set /a n=0&set /a nu=0
for %%i in (%shu%) do set /a nu+=1
:XH
set /a Rui=%random%%%nu%+1
if %Rui% geq 31 Goto TT
for /f "tokens=%Rui% delims=," %%i in ("%Qian%") do set f%n%=%%i&set "Qian=!Qian:%%i=!"&set "Qian=!Qian:,,=,!"
set /a nu-=1&set /a n+=1
if %n% LSS 6 goto XH
Goto PP
:TT
set /a G=Rui-30
for /f "tokens=30* delims=," %%i in ("%Qian%") do (
for /f "tokens=%G% delims=," %%i in ("%%j") do set f%n%=%%i&set "Qian=!Qian:%%i=!"&set "Qian=!Qian:,,=,!"
)
set /a nu-=1&set /a n+=1
if %n% LSS 6 goto XH
:PP
set HM=%f0% %f1% %f2% %f3% %f4% %f5%
set Xiao=%shu%
for %%i in (%Xiao%) do if %%i GTR 16 set "Xiao=!Xiao:%%i=!"&set "Xiao=!Xiao:,,=,!"
set /a nx=0
for %%i in (%Xiao%) do set /a nx+=1
set /a Rui=%random%%%nx%+1
for /f "tokens=%Rui% delims=," %%a in ("%Xiao%") do set f6=%%a
set /a v+=1
cls&echo.&echo ●●●双色球摇奖器●●●&echo.&echo 第%v%次摇出的号码:&echo.&echo 摇出的号码:%HM% + %f6%&echo.
set "m="
(for %%j in (%HM%)do (set b=%%j&set "s="
for %%i in (!m!)do (if %%j gtr %%i (
set s=!s! %%i)else set s=!s! !b! %%i&set b=)
set "m=!s! !b! "))&set "m=!m: = !"
set HM1=!m:~1,-1!
echo 排序后的号码:%HM1% + %f6%&echo.&echo.&echo.&echo 按任意键重摇...&echo.&echo 结果保存在“必中.txt”中。&echo 排序后号码相同的将不保存。
for /f "delims=" %%b in ('type "必中.txt"^|find /i "排序后的号码:%HM1% + %f6%"') do goto bubaoc
set /a o+=1
echo 第%v%次摇出第%o%次写入的号码:>>必中.txt&echo 摇出的号码:%HM% + %f6%>>必中.txt&echo 排序后的号码:%HM1% + %f6%>>必中.txt&echo.>>必中.txt
:bubaoc
pause>nul&goto XH2

不要寄予一两个例子,去批处理之家找找namejm的帖子吧,其中最详尽的就是for,看完了基本能够明白用法,但要真正明白还是得自己多练。

扩展阅读:养个口口干什么by ... 批处理实例 ... 制药废水处理实例 ... python for in循环 ... 图像处理的实例 ... 批处理循环 ... 数据处理实例 ... 马尾 好转 痛 ... 批处理for循环跳出循环 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网