找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23595|回复: 2

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

[复制链接]
发表于 2018-6-6 11:00:06 | 显示全部楼层 |阅读模式
本帖最后由 踏沙行 于 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作的怪吗?

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2018-6-6 12:04:34 | 显示全部楼层
都是执行了两次,只是你没看到而已。
在第三行下面加一行:
gogo :eof
 楼主| 发表于 2018-6-6 16:22:42 | 显示全部楼层
回复 2# Batcher

嗯嗯,就是,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 13:02 , Processed in 0.017801 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表