代码之家  ›  专栏  ›  技术社区  ›  Rook

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

  •  0
  • Rook  · 技术社区  · 16 年前

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

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

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

    有没有一种方法可以通过批处理文件测试文件是否存在,如果存在,只需写OK?

    文件1为OK
    文件2为OK
    数据文件 目录中缺少data.dat

    这是怎么做到的?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Joey Gumbo    16 年前

    作为一种更先进的方法:

    @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 变量控制是否继续生成。一个丢失的文件会导致它取消。

        2
  •  1
  •   bernhof    16 年前

    像这样?

    @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/

    推荐文章