xp实现dos的chioce命令

今天在自己编辑一个能够实现收藏和还原文件夹的批处理命令中,遇到了一个难题那就是在dos6.0下能

实现的choice选项,但是在xp中不能实现!具体如下:(choice命令和set命令直接从网页中摘抄,如果

你想查询具体的命令使用方法可以在xp的dos命令提示符下输入   命令 /?查询

需要实现的目的:通过执行简单的批处理命令实现

1、备份收藏夹,2、还原收藏夹3、清除垃圾文件4、退出。

但是在使用choice中,却不能实现,因为xp 中好像是不支持它了,如何实现呢,后来通过查阅资料

发现了dos中的"set"命令,同样可以达到"choice"命令功能!

choice命令详解:

语法 : CHOICE [/C[:]keys] [/N] [/S] [/T[:]c,nn] [text]

参数:

text

指出要在提示符前显示的正文。仅当在提示符前的正文中包括有开关字符(/)作
为正文内容时,才要用双引号。如果不指定正文,CHOICE仅显示一个提示符。


开关项:

/C[:]keys

指定提示中可接受的按键。显示时,这些键出现在[]内,键之间以逗号分隔,最后跟一问号。若不指定/C开关,CHOICE采用隐含值YN。冒号(:)是可选项。

/N
让CHOICE不显示提示符,但提示符前的正文仍然显示。若指定了/N开关,所指定的
按键仍有效。

/S
使CHOICE区别大小写字母。若没指定/S,CHOICE对任何用户指定的键,大小写不作
区分。

/T[:]c,nn

在对某一指定关键字作默认设置前,让CHOICE等待一指定秒数的时间。/T转换中的值如下所设:

c
指定等待nn秒后作为默认值的那个字符。该字符必须出现在/C开关后的按键
集中。
nn
指定暂停的秒数。可接受0-99之间的值。若指定为0,表示默认设置前不暂停。

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% - 扩展到调用命令处理器的原始命令行。

批处理命令全文

cls

@echo off

echo 本程序可以备份、还原收藏夹、以及清除系统垃圾文件!

echo

echo 请选择你所要执行的操作!

echo

echo 1、备份收藏夹,2、还原收藏夹3、清除垃圾文件4、退出。

set /p choice=请选择:

if %choice% == 4 goto exit

if %choice% == 3 goto clean

if %choice% == 2 goto recall

if %choice% == 1 goto backup

:menu

@echo off

echo

echo 1、备份收藏夹,2、还原收藏夹3、清除垃圾文件4、退出。

文件路径,暂时还不知道如何用变量实现)

echo 备份完成,请继续选择操作!

goto menu  

:recall

@echo off  

echo 正在还原收藏夹,请稍等......  

rd /s/q "%userprofile%/favorites"

xcopy /e/c/f/r/y D:/邵祥顺个人文档/Favorites/*.* "%userprofile%/favorites/*.*"

echo 还原完成,请继续选择操作!

goto menu

:clean

@echo off  

echo 正在清除系统垃圾文件,请稍等......  

del /f /s /q %systemdrive%/*.tmp  

del /f /s /q %systemdrive%/*._mp  

del /f /s /q %systemdrive%/*.log  

del /f /s /q %systemdrive%/*.gid  

del /f /s /q %systemdrive%/*.chk  

del /f /s /q %systemdrive%/*.old  

del /f /s /q %systemdrive%/recycled/*.*  

del /f /s /q %windir%/*.bak  

del /f /s /q %windir%/prefetch/*.*  

rd /s /q %windir%/temp & md %windir%/temp  

del /f /q %userprofile%/cookies/*.*  

del /f /q %userprofile%/recent/*.*  

del /f /s /q "%userprofile%/Local Settings/Temporary Internet Files/*.*"  

del /f /s /q "%userprofile%/Local Settings/Temp/*.*"  

del /f /s /q "%userprofile%/recent/*.*"  

echo 清除系统LJ完成!请继续选择操作!  

goto menu

:exit

echo 感谢您使用本程序!

exit


set /p choice=请选择:

if %choice% == 4 goto exit

if %choice% == 3 goto clean

if %choice% == 2 goto recall

if %choice% == 1 goto backup

:backup

@echo off  

echo 正在备份收藏夹,请稍等......  

xcopy /e/c/f/r/y "%userprofile%/favorites/*.*" D:/xxxx个人文档/Favorites/*.* (这里改成你要保存收藏夹的
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
win2003 Vista才有这个命令,可以放到xp使用 ============================================================ Choice 在批处理程序中,通过显示提示信息并暂停批处理程序,用户可以从一组用户选项键中进行选择。 语法 choice [/c [Choices]] [/n] [/cs] [/tTimeout/dChoice] [/mText] 参数: /c Choices 指定用户选项键。显示时,选项键由逗号分隔,出现在括号([])中,后面跟着问号。如果未指定 /cChoices,默认情况下,choice 显示使用 [Y, N]。 /n 隐藏用户选项键。如果使用命令行选项,将在提示符之前出现消息正文,选项仍处于启用状态。 /cs 指定用户选项键必须区分大小写。默认情况下,用户选项键不区分大小写。 /t Timeout /d Choice 指定在默认为指定键之前 choice 暂停指定的秒数。下表将描述 /t 命令行选项的值。 Timeout 要暂停的秒数。可接受的值介于 0 到 9999 之间。如果使用 0,choice 在默认为指定键之前不暂停。 /d Choice 指定 Timeout 秒数之后的默认选择。您使用的字符必须在由 /cChoices 指定的选择集中。如果使用命令行选项,还必须同时指定 /tTimeout。 /m Text 指定要在提示符之前显示的文字。如果您包括命令行选项字符(即 /)作为提示符之前的一部分文字,必须用引号将该文字引起来。如果未指定任何文字,choice 将只显示提示符。 /? 在命令提示符下显示帮助。 注释 • ERRORVALUE 环境变量被设置为用户从选择列表中选择的键的索引。您指派的第一个键将返回值 1,第二个将返回值 2,第三个将返回值 3,依此类推。如果用户按下一个不在您指派的键中间的键,Choice.exe 将发出警告声(即,它向控制台发送一个 BEL 或 07h 字符)。如果 Choice.exe 检测到错误情况,它就会返回错误值 255。如果用户按 Ctrl+Break 或 Ctrl+C,Choice.exe 就会返回错误值 0。当您在批处理程序中使用错误值参数时,请将它们以降序列出。 示例 请在批处理文件中键入下列语法: choice /c ync 运行 Choice.exe 时出现下列语句: [Y,N,C]?请在批处理文件中键入下列语法: choice /c ync /n /m Yes, No or Continue? 运行 Choice.exe 时出现下列语句: Yes, No, or Continue?按如下方式将文字添加到语法中: choice /c ync /m Yes, No, or Continue 运行 Choice.exe 时出现下列语句: Yes, No, or Continue [Y,N,C]?/t 命令行选项将设置一个时间限制(在该限制内用户必须响应),并指定当用户在该时间限制内没有作出响应时将显示的值。要将时间限制设置为五秒并指定 N 作为默认值,请在批处理程序中键入下列命令行: choice /c ync /t 5 /d n 当批处理文件启动 Choice.exe 时,将出现下列消息: [Y,N,C]?如果用户未能在五秒钟内按下一个键,Choice.exe 将选择 N 并返回错误值 2。否则,Choice 将返回与用户所选对应的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值