Board logo

标题: [系统相关] 【已解决】pause导致命令重复执行 [打印本页]

作者: 踏沙行    时间: 2018-6-6 11:00     标题: 【已解决】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作的怪吗?
作者: Batcher    时间: 2018-6-6 12:04

都是执行了两次,只是你没看到而已。
在第三行下面加一行:
gogo :eof
作者: 踏沙行    时间: 2018-6-6 16:22

回复 2# Batcher

嗯嗯,就是,谢谢!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2