如何用DOS命令中的if exist来判断并执行相应的命令?
小弟想做一个批处理,要求如下功能,判断d:\123文件夹中是否存在1.txt2.txt3.txt,如果同时存在,则关机,如果没有同时存在,则过一分钟再判断。也就是说每隔一...
小弟想做一个批处理,要求如下功能,
判断d:\123文件夹中是否存在1.txt 2.txt 3.txt,如果同时存在,则关机,如果没有同时存在,则过一分钟再判断。
也就是说每隔一分钟来检查一次是否存在这几个文件,存在就关机。
谢谢 展开
判断d:\123文件夹中是否存在1.txt 2.txt 3.txt,如果同时存在,则关机,如果没有同时存在,则过一分钟再判断。
也就是说每隔一分钟来检查一次是否存在这几个文件,存在就关机。
谢谢 展开
1个回答
展开全部
@echo off
echo CopyRight by ruin_studio
rem 3个if exist判断文件是否同时存在 貌似这样比较搓 需要改进
if exist d:\123\1.txt (
if exist d:\123\2.txt (
if exist d:\123\3.txt (
echo exist
shutdown -s -t 0
goto :eof
)else (
echo no exist
)
)
)
setlocal enabledelayedexpansion
rem 下来是定时检测
rem t1是现在时刻
set t1=%time%
rem t2是取现在时刻中的分钟 t3是给现在的分钟加1 t4是下次要执行的时刻
if "%time:~3,1%"=="0" (
set t2=%time:~4,1%
set /a t3=!t2!+1
) else (
set t2=%time:~3,2%
set /a t3=!t2!+1
)
if "%t3%"=="60" (
set /a t4=%t1:~0,2%+1
set /a t4=!t4!%%24
set t4=!t4!:0:%t1:~-5%
) else (
set t4=%t1:~0,2%:%t3%:%t1:~-5%
)
rem 用at命令在t4时刻再次执行批处理
at %t4% /interactive c:\1.bat>nul
pause
把上面的保存为你的c:\1.bat 或者其他路径 只要在批处理改过来就好了 执行就OK了 我简单的测试了 每隔一分钟检查文件 可以的
echo CopyRight by ruin_studio
rem 3个if exist判断文件是否同时存在 貌似这样比较搓 需要改进
if exist d:\123\1.txt (
if exist d:\123\2.txt (
if exist d:\123\3.txt (
echo exist
shutdown -s -t 0
goto :eof
)else (
echo no exist
)
)
)
setlocal enabledelayedexpansion
rem 下来是定时检测
rem t1是现在时刻
set t1=%time%
rem t2是取现在时刻中的分钟 t3是给现在的分钟加1 t4是下次要执行的时刻
if "%time:~3,1%"=="0" (
set t2=%time:~4,1%
set /a t3=!t2!+1
) else (
set t2=%time:~3,2%
set /a t3=!t2!+1
)
if "%t3%"=="60" (
set /a t4=%t1:~0,2%+1
set /a t4=!t4!%%24
set t4=!t4!:0:%t1:~-5%
) else (
set t4=%t1:~0,2%:%t3%:%t1:~-5%
)
rem 用at命令在t4时刻再次执行批处理
at %t4% /interactive c:\1.bat>nul
pause
把上面的保存为你的c:\1.bat 或者其他路径 只要在批处理改过来就好了 执行就OK了 我简单的测试了 每隔一分钟检查文件 可以的
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询