中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 16:28
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]如何做个能接收外部指令的批处理。 查看 1,024 回复 6
楼 主 [已解决]如何做个能接收外部指令的批处理。 发表于 2009-09-20 10:15 ·  马来西亚
初级用户
积分 31
发帖 19
注册 2008-02-05 23:07
18年会员
UID 110255
性别 男
状态 离线
小弟需要做一个可以接受外部的批处。

例如 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~ 大家好,小弟初到贵处,请各位高手多多指教。。。:)
2 发表于 2009-09-20 10:24 ·  中国 湖北 襄阳 老河口市 电信
初级用户
积分 175
发帖 45
注册 2007-08-04 16:16
19年会员
UID 94640
性别 男
状态 离线
没看明白意识 能说清楚点嘛
3 发表于 2009-09-20 10:38 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
@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 ]
4 发表于 2009-09-21 02:58 ·  中国 福建 龙岩 电信
初级用户
积分 30
发帖 15
注册 2008-06-23 23:11
18年会员
UID 120750
性别 男
状态 离线
@echo off
title test
set DT="C:\Program Files\D-Tools\daemon.exe"
%DT% -mount 0,"%1"<这里改 %1
5 发表于 2009-09-21 09:05 ·  马来西亚
初级用户
积分 31
发帖 19
注册 2008-02-05 23:07
18年会员
UID 110255
性别 男
状态 离线
谢谢各位大大,

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~ 大家好,小弟初到贵处,请各位高手多多指教。。。:)
6 发表于 2009-09-21 10:27 ·  中国 吉林 延边朝鲜族自治州 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
如果我们要用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 ]
7 发表于 2009-09-30 01:05 ·  马来西亚
初级用户
积分 31
发帖 19
注册 2008-02-05 23:07
18年会员
UID 110255
性别 男
状态 离线
恩,谢谢大大。
小弟明白了,了解这个方式对于小弟将来写批处理提供了很大的灵活性,受益无穷。
感谢啊。
hihi~ 大家好,小弟初到贵处,请各位高手多多指教。。。:)
论坛跳转: