如何从批处理文件中检查文件是否存在

时间:2014-06-28 07:55:36

标签: windows batch-file windows-7

我有几个文件,比如......

runtime/common/pc.layoutconfig/0001CD145AAD5339EDEDC1616C8D5077.pc_resourcelib
runtime/common/pc.layoutconfig/01BFFBA4B3000403D29349625F993A88.pc_resourcelib
runtime/common/pc.layoutconfig/049ABD868C8E7CC1DFDC36E5BD8D9E25.pc_resourcelib
runtime/common/pc.layoutconfig/059397634EF0CE9D71377A755AE4596F.pc_resourcelib
runtime/common/pc.layoutconfig/06064545A76229EFA8F5D1D3B3D5DCAD.pc_resourcelib
runtime/common/pc.layoutconfig/08CAA66FDD0D86AD2EA16CDA675F9C66.pc_resourcelib
runtime/common/pc.layoutconfig/09ACF6E792AD02AB4B47BDF7E069E7DF.pc_resourcelib
runtime/common/pc.layoutconfig/0AC5B504AEE3B861A0BAA6046B0BA788.pc_resourcelib

现在,如果我想检查这些文件是否存在,并在win7中显示文件的名称不存在,我该怎么做这个程序?

runtime/common/pc.layoutconfig/0001CD145AAD5339EDEDC1616C8D5077.pc_resourcelib
runtime/common/pc.layoutconfig/01BFFBA4B3000403D29349625F993A88.pc_resourcelib
runtime/common/pc.layoutconfig/049ABD868C8E7CC1DFDC36E5BD8D9E25.pc_resourcelib
runtime/common/pc.layoutconfig/059397634EF0CE9D71377A755AE4596F.pc_resourcelib

我可以一次检查一个文件,但如何检查几个?

2 个答案:

答案 0 :(得分:3)

for %%a in (
"runtime\common\pc.layoutconfig\0001CD145AAD5339EDEDC1616C8D5077.pc_resourcelib"
"runtime\common\pc.layoutconfig\01BFFBA4B3000403D29349625F993A88.pc_resourcelib"
"runtime\common\pc.layoutconfig\049ABD868C8E7CC1DFDC36E5BD8D9E25.pc_resourcelib"
... [and so on...]
) do if not exist "%%~a" echo "%%~a" does not exist
  • 当然,如果这些名称在文件中,则有一个更简单的解决方案,但是你没有告诉我们你是如何获得它们的。

另请注意,\是目录分隔符,/是交换机指示符。

这假定所需的目标文件存在或与当前目录无关。

它在批处理文件中写成一系列行。直接从提示执行是不同的。

答案 1 :(得分:1)

我改变了Magoo的答案;

set /p asd=Enter Your File Name
for /F  "tokens=*" %%a in (%asd%) DO (
  if not exist "%%~a" echo "%%~a" does not exist
)

和ofc就像Magoo所说的那样\是一个目录分隔符。