How to check if a file exists from inside a batch file
我只有在存在某个文件时才需要运行实用程序。 如何在Windows批处理中执行此操作?
1 2 3 4 5
| if exist <insert file name here> (
rem file exists
) else (
rem file doesn't exist
) |
或者在一行上(如果只需要执行一个操作):
1
| if exist <insert file name here> |
例如,如果文件存在,这将在autoexec.bat上打开记事本:
1
| if exist c:\autoexec.bat notepad c:\autoexec.bat |
-
如果要处理带空格的路径:stackoverflow.com/questions/138981/…
-
@loopkin - else有效,请参阅"if /?" ......"ELSE子句必须与IF之后的命令在同一行上。例如:[...众多使用示例...]"
-
@ chris-j谢谢Chris,你是对的,似乎括号必须与else在同一行。这就是我做错了。我想我永远不会习惯批处理语法:(
-
如果你是像我这样的n00b并忘记更换波浪形支架,那么这将无效。所以当你{在这里插入文件名}时一定要删除{} !!花了5分钟尴尬实现这个:(
-
这是新的吗?直到现在我才意识到这种语法。但是,它在我的Windows 10机器上运行正常。
-
@Martin - 自XP以来,扩展的'if'语法已经可用了我相信。
-
如果您以管理员身份运行,则可以将当前目录重置为system32 ..使用这些行; @setlocal enableextensions @cd / d"%~dp0"
-
IF EXIST构造的一个警告:它无法检测隐藏文件(具有隐藏属性的文件)。
-
如果圆括号不起作用,我有Win 10和第一。
在批处理程序中执行条件处理。
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
尝试类似以下示例,引自Windows XP上IF /?的输出:
1 2 3 4 5
| IF EXIST filename. (
del filename.
) ELSE (
echo filename. missing.
) |
您还可以使用IF NOT EXIST检查缺少的文件。
IF命令非常强大。 IF /?的输出将奖励仔细阅读。 就此而言,在许多其他内置命令中尝试使用/?选项来获取大量隐藏的宝石。
&NBSP;
-
为什么 '。'文件名末尾?这是一个错字吗?
-
我引用了内置到CMD.EXE的实际IF命令的帮助文本,它有这些点。我不知道他们为什么包括它们,它似乎不一致。当然,EXIST关键字实际需要的是有效的文件名,可以是完全限定的。其他命令使用idiom [drive:][path]filename代替这里使用的文本filename.,这显然更清晰。