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

[特效代码] 批处理能不能实现拖入文件后不按回车?

拖入文件到cmd窗口后,要先点一下窗口,再回车
太麻烦
能不能像当复制文件遇到同名文件时提示(yes/no/all),我们按y/n/a,不用回车

等待按键响应:
  1. @echo off&if not "%1"=="" call%*&exit||{Jvive@cn-dos.net|08-4-26}
  2. ::纯批实现等待按键响应
  3. :begin
  4. call:timeout 8 :tsk1
  5. :tsk1
  6. echo msgbox "默认计划2">%tmp%\'.vbs
  7. start %tmp%\'.vbs
  8. echo 按回车键退出
  9. exit
  10. :: /*---------------timeout----------------------
  11. :timeout [num] [:label]
  12. del/a/q %tmp%\' 2>nul||(echo 未知错误!&pause&exit)
  13. start/b/REALTIME %~s0 :timeout_1 %1 %2
  14. pause>nul
  15. if exist %tmp%\' exit ::没有按键,退出timeout
  16. title %ComSpec%&cd.>%tmp%\'&goto%2
  17. :timeout_1 [num] [:label]
  18. for /l %%a in (%1 -1 0)do (
  19.    title 倒计时:%%a  /任意键跳过.../
  20.    if exist %tmp%\' title %ComSpec%&exit
  21.    ping/n 2 127.1 >nul)
  22. title %ComSpec%&cd.>%tmp%\'&goto%2
  23. :: /*--------------- timeout ---------------------*/
复制代码
等待指定输入:
  1. @echo off&if not "%1"=="" call%*&exit||{Jvive@cn-dos.net|08-4-26}
  2. ::纯批实现等待指定输入
  3. :begin
  4. call:timeout 5 :tsk1 626 :tsk2
  5. :tsk1
  6. echo msgbox "默认计划">%tmp%\'.vbs
  7. start %tmp%\'.vbs
  8. echo\&echo 按回车键退出
  9. exit
  10. :tsk2
  11. echo msgbox "自定义计划">%tmp%\'.vbs
  12. start %tmp%\'.vbs
  13. exit
  14. :: /*----------------- timeout --------------------
  15. :timeout [num] [:label1] [STR] [:LABEL2]
  16. setlocal&del/a/q %tmp%\' 2>nul||(echo 未知错误!&pause&exit)
  17. start/b/REALTIME %~s0 :timeout_1 %1 %2 %3 %4
  18. :timeout_2
  19. set "v="
  20. set/p v=
  21. if %v%.==%3. title %ComSpec%&cd.>%tmp%\'&endlocal&goto%4
  22. if exist %tmp%\' exit ::没有输入,退出timeout
  23. goto:timeout_2
  24. :timeout_1 [num] [:label1] [STR] [:LABEL2]
  25. for /l %%a in (%1 -1 0)do (
  26.    title 倒计时:%%a /输入:%3 跳过默认计划 %2/
  27.    if exist %tmp%\' title %ComSpec%&exit
  28.    ping/n 2 127.1 >nul)
  29. title %ComSpec%&cd.>%tmp%\'&goto%2
  30. :: /*------------------ timeout -------------------*/
复制代码
思路:

一个进程"pause"(实际上它还是处于执行态只是执行pause命令暂停罢了),另一个进程处于执行状态,若当这个进程变为也pause时,那么,不管这个进程的优先级有多高,按键输入只会响应第一个执行pause的进程,

原文地址:http://www.cn-dos.net/forum/viewthread.php?tid=39828
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表