批处理怎么检测到U盘插入指定盘符就执行命令 如果程序打开后20s没U盘插入指定盘符就退出?

 我来答
qop_dob
2019-12-12 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.3万
采纳率:79%
帮助的人:3943万
展开全部

复制粘贴到记事本,另存为xx.bat,编码选ANSI

@echo off
rem 检测插入的U盘是否为指定盘符并执行相应操作
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
set upan=K:
set sleep=20
cd /d "%~dp0"
:loop
if exist "%upan%\" (goto break)
echo;%sleep%
set /a sleep-=1
if exist "%windir%\System32\timeout.exe" (
    >nul timeout /t 1 /nobreak
) else >nul ping /n 2 0
if %sleep% leq 0 (echo;Not Found&goto end)
goto loop
:break
echo;此处为要执行的命令
:end
echo;%#% +%$%%$%/%@% %z%
>nul ping /n 3 0
exit
依梦琴瑶
高粉答主

2019-12-15 · 说的都是干货,快来关注
知道顶级答主
回答量:6.9万
采纳率:82%
帮助的人:1.7亿
展开全部
如果是固定盘符的话,那么使用if命令即可。

@echo off & title 检测指定盘符是否存在 By 依梦琴瑶
::设定指定盘符
set Pf=G:\

:Loop
set /a t+=1
if %t% gtr 20 exit
if exist "%Pf%" goto Start
timeout /t 1 /nobreak >nul 2>nul
goto Loop

:Start
echo 需要执行的命令
追问
为什么程序会将@echo判定为外部程序
且执行完set /a t+=1后显示“此时不应有G:\”?
追答
注意脚本保存的编码,必须是ANSI。至于此时不应有这个提示,是我疏忽,一个单词漏写字母了,原答案已修改。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式