中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 批处理指定语句的执行顺序 上一主题 | 下一主题
chainliq
高级用户

学无尽止


积分 635
发帖 244
注册 2006-4-15
来自 广西贵港
状态 离线
『楼 主』:  批处理指定语句的执行顺序

@echo off
del/q D:\netgame\径舞团
del/q D:\netgame\街头篮球         {这样应该能删掉整个文件夹吧?}
del/q D:\netgame\跑跑卡丁车


以上程序,我想让它按编号运行。如:打开以后 要提示按编号,按1,运行第一句:del D:\netgame\径舞团      按2,运行第二句:del D:\netgame\街头篮球
按3,运行第三句:del D:\netgame\跑跑卡丁车
在完成指定执行程序以后,显示:游戏修复成功,请重新运行游戏程序,谢谢使用!



本人是想在网吧想利用这个程序在游戏被破坏时把它删掉,从服务器上利用同步更新重新同步到客户机上,呵呵,小弟在论坛呆的时候不是很长,希望能得到各位的帮忙,谢谢!麻烦帮偶编个出来能保存为**.bat,非常感谢!~

2006-8-8 22:10
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (86682419)  编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 2 楼』:  

  楼上的,如果要删除文件夹,del是删不掉的,要换成rd来删;如果文件夹下有文件,还要加上/s参数,所以,你以上的命令应该修改。结合你的要求,可得到如下代码(因为不知道你所说的在完成指定执行程序之后究竟是要完成什么动作,所以请自行完善代码):
@echo off
:input
echo                1  删除径舞团
echo                2 删除街头篮球
echo                3 删除跑跑卡丁车
set choice=
set /p choice=请输入操作代码:
if 完成了指定程序 goto finished
if "%choice%"=="" goto input
if "%choice%"=="1" rd /s /q D:\netgame\径舞团 && goto input
if "%choice%"=="2" rd /s /q  D:\netgame\街头篮球 && goto input
if "%choice%"=="1" rd /s /q D:\netgame\跑跑卡丁车 && goto input
:finished
echo 游戏修复成功,请重新运行游戏程序,谢谢使用!
pause




尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-8-8 23:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
IceCrack
中级用户

DOS之友


积分 332
发帖 168
注册 2005-10-6
来自 天涯
状态 离线
『第 3 楼』:  

哎  楼主怎么能一帖多发啊! 多么的浪费论坛资源啊 希望楼主能够改正

   此帖被 +8 点积分      点击查看详情   




测试环境: windows xp pro sp2    高手是这样炼成的:C:\WINDOWS\Help\ntcmds.chm
2006-8-9 08:35
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (369525996)  编辑帖子  回复  引用回复
chainliq
高级用户

学无尽止


积分 635
发帖 244
注册 2006-4-15
来自 广西贵港
状态 离线
『第 4 楼』:  不行啊,怎么办呢,



2006-8-9 11:14
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (86682419)  编辑帖子  回复  引用回复
chainliq
高级用户

学无尽止


积分 635
发帖 244
注册 2006-4-15
来自 广西贵港
状态 离线
『第 5 楼』:  不行啊

噢,我忘记啦一点儿啦, 我D:\netgame  这些都是隐藏的文件夹啊,怎么办呢!~

2006-8-9 11:15
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (86682419)  编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 6 楼』:  



  Quote:
『第 3 楼』:  

哎  楼主怎么能一帖多发啊! 多么的浪费论坛资源啊 希望楼主能够改正

+8分表示感谢。
希望楼主理解并支持。

  Quote:
『第 5 楼』:  不行啊

噢,我忘记啦一点儿啦, 我D:\netgame  这些都是隐藏的文件夹啊,怎么办呢!~

我这里测试可以通过rd /s /q删除隐藏文件夹,不知道你登陆的用户是否具有删除文件的权限?
2F的代码基本OK的了,不过你是否没有把代码中的这一句修改成你想要的?
if 完成了指定程序 goto finished
也给你个脚本吧:
@echo off
:start
    set var=
    cls
    echo                1 删除径舞团
    echo                2 删除街头篮球
    echo                3 删除跑跑卡丁车
    echo                其他任意键退出...
    set /p var=
goto %var%

:1
    rd /s /q "D:\netgame\径舞团" && echo 操作完成,按任意键回到主菜单!
    pause>nul
goto start

:2
    rd /s /q  "D:\netgame\街头篮球" && echo 操作完成,按任意键回到主菜单!
    pause>nul
goto start

:3
    rd /s /q "D:\netgame\跑跑卡丁车" && echo 操作完成,按任意键回到主菜单
    pause>nul
goto start
未经测试,如有需要可自行修改。
另:
再次建议:在脚本中涉及到路径(特别是包含非字母字符)的时候,尽可能地用引号把路径包起来。
还有关于你这个脚本,如果只有这3项要删除的话,可以把路径分别保存到变量中,然后通过启用延迟的环境变量+嵌套变量名来实现,将会省略掉不少代码。

2006-8-9 19:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: