Windows 如何检查批处理文件中是否存在文件
只有当某个文件存在时,我才需要运行实用程序。如何在Windows批处理中执行此操作Windows 如何检查批处理文件中是否存在文件,windows,batch-file,Windows,Batch File,只有当某个文件存在时,我才需要运行实用程序。如何在Windows批处理中执行此操作 C:\>help if 在批处理程序中执行条件处理 如果[NOT]错误级别编号命令 如果[NOT]string1==string2命令 如果[不]存在文件名命令 请尝试以下示例,引用Windows XP上的IF/?的输出: IF EXIST filename. ( del filename. ) ELSE ( echo filename. missing. ) 如果存在文件名。( 删除文件
C:\>help if
在批处理程序中执行条件处理
如果[NOT]错误级别编号命令
如果[NOT]string1==string2命令
如果[不]存在文件名命令
请尝试以下示例,引用Windows XP上的
IF/?
的输出:
IF EXIST filename. (
del filename.
) ELSE (
echo filename. missing.
)
如果存在文件名。(
删除文件名。
)否则(
回显文件名。缺少。
)
您还可以使用检查丢失的文件(如果不存在)
IF
命令非常强大。IF/?
的输出将奖励仔细阅读。为此,请在许多其他内置命令上尝试/?
选项,以获得大量隐藏的宝石。
为什么在文件名的末尾加“.”?是打字错误吗?我引用了CMD.EXE中内置的实际
IF
命令中的帮助文本,该命令中有这些点。我不知道他们为什么包括他们,这似乎不一致。当然,EXIST
关键字实际需要的是一个有效的文件名,它可能是完全限定的。其他命令使用习惯用法[drive:][path]filename
代替文本文件名。
在此处使用,这显然更清楚。如果处理带有空格的路径:@loopkin-else
有效,请参阅“If/?”。。。“ELSE子句必须与IF后面的命令位于同一行。例如:[…许多使用示例…]”@chris-j谢谢chris,你是对的,括号似乎必须与ELSE位于同一行。这就是我做错的。我想我永远都不会习惯批处理语法:(如果你是像我一样的n00b,忘记替换扭曲的括号,那么这就不行了。所以当你{insert file name here}时,一定要删除{}!!花了5分钟的时间才意识到这一点:(如果存在的话
构造的一个警告:它无法检测隐藏的文件。)(具有隐藏属性的文件)。
if exist <insert file name here> (
rem file exists
) else (
rem file doesn't exist
)
if exist <insert file name here> <action>
if exist c:\autoexec.bat notepad c:\autoexec.bat