标题: [已解决]如何做个能接收外部指令的批处理。
[打印本页]
作者: www0com0my
时间: 2009-9-20 10:15
标题: [已解决]如何做个能接收外部指令的批处理。
小弟需要做一个可以接受外部的批处。
例如 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 ]
作者: q8249014
时间: 2009-9-20 10:24
没看明白意识 能说清楚点嘛
作者: Hanyeguxing
时间: 2009-9-20 10:38
@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 ]
作者: ficn
时间: 2009-9-21 02:58
@echo off
title test
set DT="C:\Program Files\D-Tools\daemon.exe"
%DT% -mount 0,"%1"<这里改 %1
作者: www0com0my
时间: 2009-9-21 09:05
谢谢各位大大,
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 ]
作者: Hanyeguxing
时间: 2009-9-21 10:27
如果我们要用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 ]
作者: www0com0my
时间: 2009-9-30 01:05
恩,谢谢大大。
小弟明白了,了解这个方式对于小弟将来写批处理提供了很大的灵活性,受益无穷。
感谢啊。