2009-08-11 3 views
0

Wie sollte man am besten vor dem Erstellen auf die Existenz aller Dateien prüfen?Vor dem Erstellen eines Projekts auf die Existenz aller Dateien prüfen

Lassen Sie mich erklären; Ich baue hauptsächlich Sachen von der Eingabeaufforderung. Keine Probleme dort, einfach den Build-Befehl und alle in einem .bat/.cmd-Datei, und führen Sie es aus. Es funktioniert gut.

Aber für den normalen Ablauf meines Programms, zum Beispiel, brauche ich mehrere Quelldateien für den Build, und dann ein paar zusätzliche Dateien, Messdaten und so.

Gibt es eine Möglichkeit, über eine Batch-Datei zu testen, ob eine Datei existiert, und wenn es existiert, schreiben Sie einfach OK?

file1.for OK
file2.for OK
datafile.txt OK data.dat FROM DIRECTORY FEHLT

Wie dies erreicht werden könnte?

Antwort

1

Als etwas fortgeschritteneren Ansatz:

@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 

Sie alle Dateien in die FileList Variable setzen. Die Variable Build steuert, ob mit dem Build fortgefahren werden soll. Eine einzelne fehlende Datei bewirkt, dass sie abgebrochen wird.

1

So ähnlich?

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

Eine Liste der verfügbaren Befehle finden http://ss64.com/nt/