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

[系统相关] 【已解决】pause导致命令重复执行

本帖最后由 踏沙行 于 2018-7-20 12:33 编辑
  1. @echo off
  2. Call :sub "abcdedfhijklmnop abc.txt","abc def.xlsx"
  3. pause
  4. :sub
  5. rem '下面参数后面使用的数字1,代表第1个文件abcdedfhijklmnop abc.txt,如果要获取第2个文件abc def.xlsx,把1换成2就可以了'
  6. Echo 使用%%~1删除最外层引号: %~1,若只有右侧引号、中间的引号,则不删除
  7. Echo 使用%%~f1扩充到全名(含路径): %~f1
  8. Echo 使用 %%~s1扩充的短名(含路径): %~s1
  9. Echo 使用%%~d1扩充到一个驱动器号: %~d1
  10. Echo 使用%%~p1扩充到一个路径: %~p1
  11. Echo 使用%%~n1扩充到一个文件名: %~n1
  12. Echo 使用%%~x1扩充到一个文件扩展名: %~x1
  13. Echo 使用%%~a1扩充到文件属性: %~a1
  14. Echo 使用%%~t1扩充到文件的日期/时间: %~t1
  15. Echo 使用%%~z1扩充到文件的大小: %~z1
  16. Echo 使用%%~dp1扩展到驱动器号和路径: %~dp1
  17. Echo 使用%%~nx1扩展到文件名和扩展名: %~nx1
  18. Echo 使用%%~ftza1扩展到类似 DIR 的输出行: %~ftza1
  19. Echo 使用%%~ftza0(0指批处理文件自身)扩展到类似 DIR 的输出行: %~aftz0
  20. echo 使用%%~$path:查找变量1:%~$path:1
  21. echo 使用%%~$path:查找变量2:%~$path:2
  22. set path=%path%;I:;H:;L:
  23. echo %path%
  24. echo 使用%%~$path:查找变量1:%~$path:1
  25. echo 使用%%~$path:查找变量2:%~$path:2
  26. Echo.
  27. Goto :eof
复制代码
本代码执行后,主程序调用sub子程序后即结束

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

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 2# Batcher

嗯嗯,就是,谢谢!

TOP

都是执行了两次,只是你没看到而已。
在第三行下面加一行:
gogo :eof
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表