标题: [文本处理] 批处理用set代替choice怎么写? [打印本页]
作者: FIFM007 时间: 2013-7-17 23:17 标题: 批处理用set代替choice怎么写?
- @echo off&setlocal enabledelayedexpansion
- set "str=0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"
- for %%a in (%str%) do set /a n+=1&set ".!n!=%%a"
- :lp
- cls&set /p=请输入八位由数字和字母组成的密码,请注意大小写:<nul
- if defined pwds set /p=%pwds%<nul
- if "%m%" equ "8" echo.&echo.&goto next
- choice /n /cs /c %str: =%
- set "pwds=%pwds%*"&set "pwd=%pwd%!.%errorlevel%!"
- set /a m+=1&goto lp
- :next
- if "%pwd%" equ "add12345" (echo 密码正确) else (echo 密码错误)
- pause>nul
复制代码
上面的这句choice /n /cs /c %str: =% 用SET命令怎么写代替?高手能详细点吗?
作者: CrLf 时间: 2013-7-18 16:14
ascode 方案,未对中文进行兼容:- @echo off
- call :ch.com
- ::获取 ch.com
-
- ch.com abc
- ::调用 ch.com,直到用户的输入中含有 a 或 b 或 c 的时候退出,退出码为用户输入与参数中对应字符所在的位置
- 您输入的是第 %errorlevel% 项
- pause&exit
-
- :ch.com
- @(echo RQPUWP]UZV_BBBB5``PY(E.(E3^)E5^)E:(E^>^)EFSX3CH^<P}pE^< ~r%%ooQRY2AY0@G uG0EGB?
- echo KO00O0KNX01K91200JMJKN2OLN9J8NNKO0001KNp01K93030JMJKN2OLKN0001_]XYZN9N810
- echo;K40KLM213L00tO8K408LM218JM0KN8200JL3JL2t063L0MtN6NKO58KL62L82K44LLM21
- )>"ch.com"
- ::这个 bat 是生成 "ch.com" 的模板,使用时可以直接复制
- exit/b
复制代码
作者: FIFM007 时间: 2013-7-18 19:56
回复 2# CrLf
你写的什么我看不懂呀!
作者: CrLf 时间: 2013-7-18 23:31
回复 3# FIFM007
改写你的代码如下:- @echo off&chcp 437|GRAFTABL>nul 936
-
- setlocal enabledelayedexpansion
-
- call :ch.com
- ::获取 ch.com
-
- set "str=0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"
- for %%a in (%str%) do set /a n+=1&set ".!n!=%%a"
-
- :lp
-
- cls&set /p=请输入八位由数字和字母组成的密码,请注意大小写:<nul
- if defined pwds set /p=%pwds%<nul
- if "%m%" equ "8" echo.&echo.&goto next
- ch.com %str: =%
- ::调用 ch.com,直到用户的输入中含有任意指定字符的时候退出,退出码为用户输入与参数中对应字符所在的位置
-
- set "pwds=%pwds%*"&set "pwd=%pwd%!.%errorlevel%!"
- set /a m+=1&goto lp
-
- :next
- if "%pwd%" equ "add12345" (echo 密码正确) else (echo 密码错误)
- pause>nul&exit
-
-
- :ch.com
- @(echo RQPUWP]UZV_BBBB5``PY(E.(E3^)E5^)E:(E^>^)EFSX3CH^<P}pE^< ~r%%ooQRY2AY0@G uG0EGB?
- echo KO00O0KNX01K91200JMJKN2OLN9J8NNKO0001KNp01K93030JMJKN2OLKN0001_]XYZN9N810
- echo;K40KLM213L00tO8K408LM218JM0KN8200JL3JL2t063L0MtN6NKO58KL62L82K44LLM21
- )>"ch.com"
- ::这个 bat 是生成 "ch.com" 的模板,使用时可以直接复制
- exit/b
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |