中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]如何做个能接收外部指令的批处理。
作者:
标题: [已解决]如何做个能接收外部指令的批处理。 上一主题 | 下一主题
www0com0my
初级用户





积分 31
发帖 19
注册 2008-2-5
状态 离线
『楼 主』:  [已解决]如何做个能接收外部指令的批处理。

小弟需要做一个可以接受外部的批处。

例如 test.bat 执行参数1111
test.bat 1111

然后他能把1111的参数转换为 %xx%
这样那个参数用在很多方面。


小弟现在做一个批处

@echo off
title test
set DT="C:\Program Files\D-Tools\daemon.exe"
%DT% -mount 0,"123.iso"


小弟希望通过批处的外部指令 插入不同的iso档。
当打入 test.bat 222.iso 之后会插入222.iso

请问这样要如何实现?

[ Last edited by www0com0my on 2009-9-21 at 09:10 ]



hihi~ 大家好,小弟初到贵处,请各位高手多多指教。。。:)
2009-9-20 10:15
查看资料  发短消息 网志   编辑帖子  回复  引用回复
q8249014
初级用户





积分 175
发帖 45
注册 2007-8-4
状态 离线
『第 2 楼』:  

没看明白意识 能说清楚点嘛

2009-9-20 10:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 3 楼』:  


@echo off
if "%1" == "" echo 错误:请指定.iso文件&pause&exit
if not exist "%1" echo 错误:%1文件不存在&pause&exit
"C:\Program Files\D-Tools\daemon.exe" -mount 0,"%1"
[ Last edited by Hanyeguxing on 2009-9-20 at 11:22 ]



批处理之家 http://bbs.bathome.net/forum-5-1.html
2009-9-20 10:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ficn
初级用户





积分 30
发帖 15
注册 2008-6-23
状态 离线
『第 4 楼』:  

@echo off
title test
set DT="C:\Program Files\D-Tools\daemon.exe"
%DT% -mount 0,"%1"<这里改 %1

2009-9-21 02:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
www0com0my
初级用户





积分 31
发帖 19
注册 2008-2-5
状态 离线
『第 5 楼』:  

谢谢各位大大,

to:
q8249014
不好意思,小弟滴表达能力太差。就是要方便放其他程式调用的工具。

to:ficn & Hanyeguxing
谢谢ficn
谢谢Hanyeguxing

看了2位大大的批处理后有个小小的疑问,请教。


当用参数的时候 为什么我们不需要先用set a=%1 来设定,就能直接用-mount 0,"%1" 呢?

如果我们要用2个参数的话 例如 111.bat xxx iso


要让批处理可以接受这样的用法行吗?
set DT="C:\Program Files\D-Tools\daemon.exe"
%DT% -mount 0,%1.%2

因为我们不一定是要导入iso 可能是nrg 或mdf 档。


另外谢谢Hanyeguxing
您的批处理让小弟学会了还能用if "%1" == "" echo XXXX 来显示未键入参数的信息,以往小弟的批处理如果没指定参数if 之后都是goto exit的,实在让小弟受益不少。

这是后来小弟制作的批处理。不知有什么能够改进的部分?
@echo off
title D-Tools
set DT="C:\Program Files\D-Tools\daemon.exe"
set a=%1
%DT% -mount 0,"%cd%\%1"
exit
[ Last edited by www0com0my on 2009-9-21 at 09:08 ]



hihi~ 大家好,小弟初到贵处,请各位高手多多指教。。。:)
2009-9-21 09:05
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 6 楼』:  

如果我们要用2个参数的话 例如 111.bat xxx iso
要让批处理可以接受这样的用法行吗?
set DT="C:\Program Files\D-Tools\daemon.exe"
%DT% -mount 0,%1.%2
因为我们不一定是要导入iso 可能是nrg 或mdf 档。


完全可以。



还有,我看不出set a=%1存在的意义

参数本身可以在批处理的任何地方使用,参数与变量最大的区别在于,参数不能被替换、搜索,检查字符串。如果需要这样做,需要将参数赋值给变量。

[ Last edited by Hanyeguxing on 2009-9-21 at 10:33 ]



批处理之家 http://bbs.bathome.net/forum-5-1.html
2009-9-21 10:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
www0com0my
初级用户





积分 31
发帖 19
注册 2008-2-5
状态 离线
『第 7 楼』:  

恩,谢谢大大。
小弟明白了,了解这个方式对于小弟将来写批处理提供了很大的灵活性,受益无穷。
感谢啊。



hihi~ 大家好,小弟初到贵处,请各位高手多多指教。。。:)
2009-9-30 01:05
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: