[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[原创] 批处理参数点点谈

作者:[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盘):
  1. @echo off
  2. title 计算两个数字之和
  3. set /a num1=%~1 %======这里是从外部传入的第一个参数======%
  4. set /a num2=%~2 %======这里是从外部传入的第二个参数======%
  5. set /a res=%num1%+%num2%
  6. echo %num1%+%num2%=%res%
  7. pause>nul
复制代码
该批处理调用方法:在命令行下输入:f:\test.bat 2 3
则显示结果:2 + 3=5

2、批处理文件中标签支持的参数,调用方式类似1
下面主要对以上两种参数的书写规范和调用方式作个简单的示范。
演示代码(将以下代码保存为test.bat,双击运行):
  1. @echo off
  2. title 计算两个数字之和
  3. set /p num1=请输入第一个数字:
  4. set /p num2=请输入第二个数字:
  5. call :Sum %num1% %num2%
  6. pause>nul
  7. goto :eof  %========执行到这里就跳出;======%
  8. Rem 这里写一个求和的标签;
  9. Rem 该函数的调用方法:call :Sum 参数1 参数2;
  10. :Sum 参数1 参数2
  11. Rem %~1代表从外部传入的参数1;
  12. Rem %~2代表从外部传入的参数2;
  13. set /a num1=%~1,num2=%~2
  14. set /a res=%num1%+%num2%
  15. echo.
  16. echo %~1 + %~2 = %res%
复制代码

楼主快点处啊,小菜正需要啊,越详细越好

TOP

你不是说会把SHIFT也弄上去的吗。。
等着哦。。
速度啊。。
ㄗs:A good programming is 99% sweat and 1% coffee!--①個亾

============ >   hi.baidu.com/novaa   <============

TOP

已经更新,呵呵

TOP

给你改了一下
@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%

TOP

请问后边的     num1=%~1,num2=%~2  怎么理解 ~1 为什么呢?什么意思呢?
简单

TOP

回复 6# jackmux


    %~I         - expands %I removing any surrounding quotes (")

TOP

回复 7# gawk


    这又是什么意思
简单

TOP

回复 8# jackmux


    删掉双引号

TOP

返回列表