标题: [原创] 批处理参数点点谈 [打印本页]
作者: youxi01 时间: 2007-12-26 22:17 标题: 批处理参数点点谈
作者:[email=youxi01@bbs.bathome.net]youxi01@bbs.bathome.net[/email],转载请注明;
这里的参数是我们常见的 %1、%2等,而非批处理中的变量。
批处理参数基本可以分为两类:
1、批处理文件本身的参数,如:某一批处理文件,文件名为:test.bat,调用方式可以为:test.bat ok
那么OK就作为参数传给test.bat文件。
简单做个示范:test.bat 中的内容如下(其中test.bat保存在F盘):- @echo off
- title 计算两个数字之和
- set /a num1=%~1 %======这里是从外部传入的第一个参数======%
- set /a num2=%~2 %======这里是从外部传入的第二个参数======%
- set /a res=%num1%+%num2%
- echo %num1%+%num2%=%res%
- pause>nul
复制代码
该批处理调用方法:在命令行下输入:f:\test.bat 2 3
则显示结果:2 + 3=5
2、批处理文件中标签支持的参数,调用方式类似1
下面主要对以上两种参数的书写规范和调用方式作个简单的示范。
演示代码(将以下代码保存为test.bat,双击运行):
- @echo off
- title 计算两个数字之和
- set /p num1=请输入第一个数字:
- set /p num2=请输入第二个数字:
- call :Sum %num1% %num2%
- pause>nul
- goto :eof %========执行到这里就跳出;======%
- Rem 这里写一个求和的标签;
- Rem 该函数的调用方法:call :Sum 参数1 参数2;
- :Sum 参数1 参数2
- Rem %~1代表从外部传入的参数1;
- Rem %~2代表从外部传入的参数2;
- set /a num1=%~1,num2=%~2
- set /a res=%num1%+%num2%
- echo.
- echo %~1 + %~2 = %res%
复制代码
作者: myweb9169 时间: 2007-12-27 00:18
楼主快点处啊,小菜正需要啊,越详细越好
作者: novaa 时间: 2007-12-27 09:15
你不是说会把SHIFT也弄上去的吗。。
等着哦。。
速度啊。。
作者: youxi01 时间: 2008-1-1 17:56
已经更新,呵呵
作者: weixiaoyaer 时间: 2010-4-17 23:26
给你改了一下
@echo off
title 计算两个数字之和
set /p num1=请输入第一个数字:
set /p num2=请输入第二个数字:
call :Sum %num1% %num2%
pause>nul
goto :eof %========执行到这里就跳出;======%
Rem 这里写一个求和的标签;
Rem 该函数的调用方法:call :Sum 参数1 参数2;
:Sum 参数1 参数2
Rem %~1代表从外部传入的参数1;
Rem %~2代表从外部传入的参数2;
set /a res=%num1%+%num2%
echo.
echo %num1%+%num2%=%res%
作者: jackmux 时间: 2012-6-4 12:46
请问后边的 num1=%~1,num2=%~2 怎么理解 ~1 为什么呢?什么意思呢?
作者: gawk 时间: 2012-6-4 13:42
回复 6# jackmux
%~I - expands %I removing any surrounding quotes (")
作者: jackmux 时间: 2012-6-7 14:50
回复 7# gawk
这又是什么意思
作者: forfiles 时间: 2012-6-7 18:15
回复 8# jackmux
删掉双引号
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |