在构建项目之前检查是否存在所有文件

时间:2009-08-11 11:39:41

标签: windows batch-file cmd

在构建之前,如何最好地检查所有文件是否存在?

让我解释一下;我主要是从命令提示符构建东西。没有问题,只需将build命令和all放在一个.bat /.cmd文件中,然后运行它。它工作正常。

但是,对于我的程序的正常运行,例如,我需要几个源文件用于构建,然后另外几个数据文件,测量数据等。

有没有办法通过批处理文件测试文件是否存在,如果存在,只需写入OK?

file1.for OK
file2.for OK
datafile.txt好的 data.dat MIRING FROM DIRECTORY

如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

这样的东西?

@ECHO OFF
IF EXIST "c:\myfile1.txt" (ECHO myfile1.txt OK) ELSE (ECHO myfile1.txt FILE MISSING FROM DIRECTORY)
IF EXIST "c:\myfile2.txt" (ECHO myfile2.txt OK) ELSE (ECHO myfile2.txt FILE MISSING FROM DIRECTORY)

有关可用命令的列表,请参阅http://ss64.com/nt/

答案 1 :(得分:1)

作为一种稍微高级的方法:

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion
Set FileList=file1.for file2.for "File with spaces" ...
Set Build=1
For %%f In (%FileList%) Do Call :FileExists %%f

If Not Defined Build (
    Echo.
    Echo Build aborted. Files were missing.
    GoTo :EOF
)

...

GoTo :EOF

:FileExists
Set FileName=%~1
If Exist "!FileName!" (
    Echo !FileName! OK
) Else (
    Echo !FileName! MISSING FROM DIRECTORY
    Set Build=
)
GoTo :EOF

您可以将所有文件放入FileList变量中。 Build变量控制是否继续构建。一个丢失的文件会导致它被取消。