本帖最后由 踏沙行 于 2018-7-20 12:33 编辑
- @echo off
- Call :sub "abcdedfhijklmnop abc.txt","abc def.xlsx"
- pause
- :sub
- rem '下面参数后面使用的数字1,代表第1个文件abcdedfhijklmnop abc.txt,如果要获取第2个文件abc def.xlsx,把1换成2就可以了'
- Echo 使用%%~1删除最外层引号: %~1,若只有右侧引号、中间的引号,则不删除
-
- Echo 使用%%~f1扩充到全名(含路径): %~f1
- Echo 使用 %%~s1扩充的短名(含路径): %~s1
- Echo 使用%%~d1扩充到一个驱动器号: %~d1
- Echo 使用%%~p1扩充到一个路径: %~p1
- Echo 使用%%~n1扩充到一个文件名: %~n1
- Echo 使用%%~x1扩充到一个文件扩展名: %~x1
- Echo 使用%%~a1扩充到文件属性: %~a1
- Echo 使用%%~t1扩充到文件的日期/时间: %~t1
- Echo 使用%%~z1扩充到文件的大小: %~z1
- Echo 使用%%~dp1扩展到驱动器号和路径: %~dp1
- Echo 使用%%~nx1扩展到文件名和扩展名: %~nx1
- Echo 使用%%~ftza1扩展到类似 DIR 的输出行: %~ftza1
- Echo 使用%%~ftza0(0指批处理文件自身)扩展到类似 DIR 的输出行: %~aftz0
- echo 使用%%~$path:查找变量1:%~$path:1
- echo 使用%%~$path:查找变量2:%~$path:2
- set path=%path%;I:;H:;L:
- echo %path%
- echo 使用%%~$path:查找变量1:%~$path:1
- echo 使用%%~$path:查找变量2:%~$path:2
- Echo.
- Goto :eof
复制代码 本代码执行后,主程序调用sub子程序后即结束
再看正面的代码,只是在了程序中增加了一句pasue- @echo off
- Call :sub "abcdedfhijklmnop abc.txt","abc def.xlsx"
- pause
- :sub
- rem '下面参数后面使用的数字1,代表第1个文件abcdedfhijklmnop abc.txt,如果要获取第2个文件abc def.xlsx,把1换成2就可以了'
- Echo 使用%%~1删除最外层引号: %~1,若只有右侧引号、中间的引号,则不删除
-
- Echo 使用%%~f1扩充到全名(含路径): %~f1
- Echo 使用 %%~s1扩充的短名(含路径): %~s1
- Echo 使用%%~d1扩充到一个驱动器号: %~d1
- Echo 使用%%~p1扩充到一个路径: %~p1
- Echo 使用%%~n1扩充到一个文件名: %~n1
- Echo 使用%%~x1扩充到一个文件扩展名: %~x1
- Echo 使用%%~a1扩充到文件属性: %~a1
- Echo 使用%%~t1扩充到文件的日期/时间: %~t1
- Echo 使用%%~z1扩充到文件的大小: %~z1
- Echo 使用%%~dp1扩展到驱动器号和路径: %~dp1
- Echo 使用%%~nx1扩展到文件名和扩展名: %~nx1
- Echo 使用%%~ftza1扩展到类似 DIR 的输出行: %~ftza1
- Echo 使用%%~ftza0(0指批处理文件自身)扩展到类似 DIR 的输出行: %~aftz0
- echo 使用%%~$path:查找变量1:%~$path:1
- echo 使用%%~$path:查找变量2:%~$path:2
- pause
- set path=%path%;I:;H:;L:
- echo %path%
- echo 使用%%~$path:查找变量1:%~$path:1
- echo 使用%%~$path:查找变量2:%~$path:2
- Echo.
- Goto :eof
复制代码 本代码执行后,sub子程序会被执行2次。
请问,问题出在哪里?
真是Pause作的怪吗? |