【原创】【学习笔记6】 调用程序或程序,调查时附带参数,子程序和函数

随笔:因为我的编程是倒着学的,先从python开始的

现在看到bat里有很多熟悉的python里概念的影子,感觉很激动。

比如应该是子程序发展成了函数把!然后调用 文件/子程序/函数 带参数的方法,还是一直没变呢!

bat和dos是我上学那个时代的东西,可惜一直错过了这么多年,要补课补课,但是很开心,旧相识重逢了吗?哈哈

 

新知识:start into back to ??

start

into main

into sub

back to main 请按任意键继续. .

 

 

 

函数 子程序

子程序调用

语法:类goto,但不一样,这个关键字和excel vba的sub 很像

call 调用子程序时,需要加 : 而goto 不需要

call文件时不需要加

call :sub

:sub

----------------------

goto end

:end

---------------------

@echo off
echo start

:main
echo main执行
call :sub 调用sub
pause


:sub
echo %1
echo sub执行
pause

 

 

文件(脚本)之间调用,使用call

  • calll 不会打开新窗口
  • 1.ba必须先执行完call 2.bat

语法

call  xxx.bat

-----------------------

1.bat内容

@echo off
echo 1
call 2.bat 此时1.bat打开2.bat
pause

2.bat内容

@echo off
echo %1
echo 2
pause

 

文件(脚本)直接调用,但是使用start打开新窗口

  • start会打开新窗口
  • 1.bat在start不返回前会继续往下执行

 

1.bat内容

@echo off
echo 调用2.bat前
start 2.bat 此时1.bat打开2.bat
echo 调用2.bat后
pause

2.bat内容

@echo off
echo %1
echo 2
pause

 

 

 参数

一般所说的参数,是指调用时的参数,参数就是调用文件,或子程序时代的实参

而子程序或脚本里带的参数,称为 形参

@echo off
echo %1
echo 2
pause

参数详细

  • 一般来说,只有%0 1% ~ 9%这10个参数
  • 0%代表 程序 自身
  • 有移位操作,shift
  • shift 默认是参数往左边移一位,并且是所有参数都跟着移位
  • shift /5 表示不是移动5位!
  • shift /5 表示  只有大于%5的参数都往左边移位,0% -4%不动,而5%被覆盖!

 

参数移位详细

 

%* 从第一个参数开始的所有参数

 

@echo off
call:shift 1 2 3 4 5 6 7 8 9
:shift 
echo off
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
shift
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
shift
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
pause

 

@echo off
call:shift_example 1 2 3 4 5 6 7 8 9
:shift_example
echo off
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
shift /8
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
shift /5
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
pause

 

批参数(%n)的替代已被增强。您可以使用以下语法:

%~1 - 删除引号("),扩充 %1
%~f1 - 将 %1 扩充到一个完全合格的路径名
%~d1 - 仅将 %1 扩充到一个驱动器号
%~p1 - 仅将 %1 扩充到一个路径
%~n1 - 仅将 %1 扩充到一个文件名
%~x1 - 仅将 %1 扩充到一个文件扩展名
%~s1 - 扩充的路径指含有短名
%~a1 - 将 %1 扩充到文件属性
%~t1 - 将 %1 扩充到文件的日期/时间
%~z1 - 将 %1 扩充到文件的大小
%~$PATH : 1 - 查找列在 PATH 环境变量的目录,并将 %1
扩充到找到的第一个完全合格的名称。如果环境
变量名未被定义,或者没有找到文件,此组合键会
扩充到空字符串

可以组合修定符来取得多重结果:

%~dp1 - 只将 %1 扩展到驱动器号和路径
%~nx1 - 只将 %1 扩展到文件名和扩展名
%~dp$PATH:1 - 在列在 PATH 环境变量中的目录里查找 %1,
并扩展到找到的第一个文件的驱动器号和路径。
%~ftza1 - 将 %1 扩展到类似 DIR 的输出行。
可以参照 call/? 或 for/? 看出每个参数的含意
echo load "%%1" "%%2">c:test.txt
生成的文件内容为 load "%1" "%2"
批处理文件里,用这个格式把命令行参数输出到文件
 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值