构建项目之前检查是否存在所有文件
问题描述:
如何在构建之前检查所有文件的存在情况?构建项目之前检查是否存在所有文件
让我解释一下;我主要是从命令提示符构建的东西。没有问题,只需将build命令全部放在一个.bat /.cmd文件中,然后运行它。它工作正常。
但是,对于我的程序的正常运行,例如,我需要几个源文件的构建,然后额外的几个数据文件,测量数据等。
有没有一种方法可以通过批处理文件测试一个文件是否存在,以及它是否存在只需写入OK?
file1.for OK
file2.for OK
datafile.txt OK data.dat文件失踪DIRECTORY
这怎么可能实现呢?
答
作为一个稍微更先进的方法:
@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
变量控制是否继续构建。一个丢失的文件会导致它被取消。
答
像这样的东西?
@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/