dos下使用set命令来实现choice的功能
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
dos下使用set命令来实现choice的功能
dos6.0下能实现的choice选项,但是因为choice是外部命令,在xp中没有choice.exe所以不能实现选择菜单。
解决办法:用SET命令代替
现在下面举几个例子:
@echo off
choice /c 12c
if %errorlevel%==1 echo 你选择了1
if %errorlevel%==2 echo 你选择了2
if %errorlevel%==3 echo 你选择了c
pause>nul
使用set来实现choice选择
@echo off
set /p a= 请输入选择[1, 2, c]:
if %a%==1 echo 你选择了1
if %a%==2 echo 你选择了2
if %a%==c echo 你选择了c
pause>nul
上面是set和choice的一点小差别,choice%errorlevel%是从1开始排列的,和选择是一一对应的.而set有更大的自由度.
set 命令详解
显示、设置或删除cmd.exe 环境变量。
SET [variable=[string]]
variable 指定环境变量名。
string 指定要指派给变量的一系列字符串。
要显示当前环境变量,键入不带参数的SET。
如果命令扩展被启用,SET 会如下改变:
可仅用一个变量激活SET 命令,等号或值不显示所有前缀匹配SET 命令已使用的名称的所有变量的值。
例:SET P
会显示所有以字母P 打头的变量
如果在当前环境中找不到该变量名称,SET 命令将把ERRORLEVEL设置成1。
SET 命令不允许变量名含有等号。
在SET 命令中添加了两个新命令行开关:
SET /A expression
SET /P variable=[promptString]
/A 命令行开关指定等号右边的字符串为被评估的数字表达式。
除十六进制有0x 前缀,八进制有0 前缀的,数字值为十进位数字。因此,0x12 与18 和022 相同。请注意八进制公式可能很容易搞混: 08 和09 是无效的数字,因为8 和9 不是有效的八进制位数。
/P 命令行开关允许将变量数值设成用户输入的一行输入。读取输入行之前,显示指定的promptString。promptString 可以是空的。
%PATH:~10,5%
会扩展PATH 环境变量,然后只使用在扩展结果中从第11 个(偏移量10)字符开始的五个字符。如果没有指定长度,则采用默认值,即变量数值的余数。如果两个数字(偏移量和长度)都是负数,使用的数字则是环境变量数值长度加上指定的偏移量或长度。
%PATH:~-10%
会提取PATH 变量的最后十个字符。
%PATH:~0,-2%
会提取PATH 变量的所有字符,除了最后两个。
如果命令扩展被启用,有几个动态环境变量可以被扩展,但不会出现在SET 显示的变量列表中。每次变量数值被扩展时,这些变量数值都会被动态计算。如果用户用这些名称中任何一个定义变量,那个定义会替代下面描述的动态定义: %CD% - 扩展到当前目录字符串。
%DATE% - 用跟DATE 命令同样的格式扩展到当前日期。
%TIME% - 用跟TIME 命令同样的格式扩展到当前时间。
%RANDOM% - 扩展到0 和32767 之间的任意十进制数字。
%ERRORLEVEL% - 扩展到当前ERRORLEVEL 数值。
%CMDEXTVERSION% - 扩展到当前命令处理器扩展版本号。
%CMDCMDLINE% - 扩展到调用命令处理器的原始命令行。
应用例子:
@echo off
title window优化文件
:start
cls
color 0c
MODE con: COLS=50 LINES=27
echo Windows Xp 优化文件!
echo Powered By ThunderRay!
echo.
echo ==============================
echo 请选择要进行的操作,然后按回车
echo ==============================
echo.
echo 1.优化系统服务
echo.
echo 2.进行端口操作
echo.
echo 3.设置IP为192.168.1.2
echo.
echo (局域网上网者慎用此功能)
echo.
echo 4.其它优化
echo.
echo 5.设置OEM信息
echo.
echo 6.清除根目录下的SXS病毒
echo.
echo 7.清理系统垃圾
echo.
echo 8.退出
echo.
:cho
set choice=
set /p choice= 请选择:
IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%
if /i "%choice%"=="1" goto start2
if /i "%choice%"=="2" goto start3
if /i "%choice%"=="3" goto ip
if /i "%choice%"=="4" goto other
if /i "%choice%"=="5" goto oem
if /i "%choice%"=="6" goto virus
if /i "%choice%"=="7" goto del
if /i "%choice%"=="8" goto end
echo 选择无效,请重新输入
echo.
goto cho
:start2
cls
echo Windows Xp 优化文件!
echo Powered By ThunderRay!
echo.
echo ============================== echo 请选择要进行的操作,然后按回车
echo ============================== echo.
echo 1.优化X P系统服务
echo.
echo 2.恢复X P原系统服务
echo.
echo 3.返回主菜单
echo.
echo 4.退出
echo.
:Choice2
set choice2=
set /p choice2= 请选择:
IF NOT "%Choice2%"=="" SET Choice2=%Choice2:~0,1%