批处理之call

1. call用法

1.1. 用法一

从批处理程序调用另一个批处理程序。

Rem CALL [drive:][path]filename [batch-parameters]
Rem 1和3是batch parameters,即命令行参数
call f:\test.bat 1 3

1.2. 用法二

将卷标当作调用的目标接受。

1.2.1. 源码

rem CALL:label arguments
rem form snow.txt文件不存在,f:\test.txt存在,java.exe是java环境下的文件
call :Exit "from snow.txt" f:\test.txt java.exe
echo test
:Exit
echo 当前批处理路径: %~f0
echo 第一个命令行参数: %1
echo 第一个命令行参数删除引号: %~1

echo 第二个命令行参数: %2

rem 如果是相对路径,自动补全当前路径;如果是全路径则不作处理
echo 第一个命令行参数扩展到完整路径: %~f1
echo 第二个命令行参数扩展到完整路径: %~f2

rem 如果是相对路径,则取当前路径的驱动器号;如果是全路径则取其驱动器号
echo 第一个命令行参数取其驱动器号: %~d1
echo 第二个命令行参数取其驱动器号: %~d2

echo 第一个命令行参数取其路径: %~p1
echo 第二个命令行参数取其路径: %~p2
echo 第一个命令行参数取其文件名: %~n1
echo 第二个命令行参数取其文件名: %~n2
echo 第一个命令行参数取其扩展名: %~x1
echo 第二个命令行参数取其扩展名: %~x2
echo 第一个命令行参数取其短名: %~s1
echo 第二个命令行参数取其短名: %~s2
echo 第一个命令行参数取其属性: %~a1
echo 第二个命令行参数取其属性: %~a2
echo 第一个命令行参数取其时间: %~t1
echo 第二个命令行参数取其时间: %~t2
echo 第一个命令行参数取其大小: %~z1
echo 第二个命令行参数取其大小: %~z2

rem 查找指定命令行参数文件在所有环境变量文件中是否存在,如果存在就将文件路径补全
rem 如果不存在则显示当前参数,如果当前参数文件也不存在则显示为空
echo 结果:  %~$PATH:1 
echo 结果:  %~$PATH:2
echo 结果:  %~$PATH:3 

rem 可以组合修改符来取得多重结果
echo 组合命令行参数1当前盘符与路径: %~dp1
echo 组合命令行参数2当前盘符与路径: %~dp2
echo 组合命令行参数1当前文件名与后缀名: %~nx1
echo 组合命令行参数2当前文件名与后缀名: %~nx2
echo 组合命令行参数1当前文件属性时间大小文件名: %~ftza1
echo 组合命令行参数2当前文件属性时间大小文件名: %~ftza2

1.2.2. 输出结果

当前批处理路径: F:\test.bat
第一个命令行参数: "form snow.txt"
第一个命令行参数删除引号: form snow.txt
第二个命令行参数: f:\test.txt
第一个命令行参数扩展到完整路径: C:\Program Files\Notepad++\form snow.txt
第二个命令行参数扩展到完整路径: f:\test.txt
第一个命令行参数取其驱动器号: C:
第二个命令行参数取其驱动器号: f:
第一个命令行参数取其路径: \Program Files\Notepad++\
第二个命令行参数取其路径: \
第一个命令行参数取其文件名: form snow
第二个命令行参数取其文件名: test
第一个命令行参数取其扩展名: .txt
第二个命令行参数取其扩展名: .txt
第一个命令行参数取其短名: C:\PROGRA~1\NOTEPA~1\form snow.txt
第二个命令行参数取其短名: f:\test.txt
第一个命令行参数取其属性:
第二个命令行参数取其属性: --a------
第一个命令行参数取其时间:
第二个命令行参数取其时间: 2019/04/19 21:55
第一个命令行参数取其大小:
第二个命令行参数取其大小: 1704
结果:
结果:  f:\test.txt
结果:  C:\ProgramData\Oracle\Java\javapath\java.exe
组合命令行参数1当前盘符与路径: C:\Program Files\Notepad++\
组合命令行参数2当前盘符与路径: f:\
组合命令行参数1当前文件名与后缀名: form snow.txt
组合命令行参数2当前文件名与后缀名: test.txt
组合命令行参数1当前文件属性时间大小文件名: C:\Program Files\Notepad++\form snow.txt
组合命令行参数2当前文件属性时间大小文件名: --a------ 2019/04/19 21:55 1704 f:\test.txt
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章