2009-08-11 2 views
0

Comment peut-on mieux vérifier l'existence de tous les fichiers avant de construire?Vérifier l'existence de tous les fichiers avant de construire un projet

Laissez-moi vous expliquer; Je construis surtout des choses à partir de l'invite de commande. Aucun problème là, il suffit de mettre la commande de construction et tout dans un fichier .bat /.cmd, et exécutez-le. Ça fonctionne bien. Mais, pour le fonctionnement normal de mon programme, par exemple, j'ai besoin de plusieurs fichiers source pour la construction, puis quelques fichiers de données supplémentaires, des données mesurées et autres.

Existe-t-il un moyen de tester via un fichier séquentiel si un fichier existe, et s'il existe, écrivez OK?

file1.for OK OK
file2.for
datafile.txt OK data.dat BLESSÉS ANNUAIRE

Comment cela pourrait-il être accompli?

Répondre

1

Comme une approche un peu plus avancé:

@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 

Vous pouvez mettre tous les fichiers dans la variable FileList. La variable Build contrôle si la construction doit continuer. Un seul fichier manquant le fait annuler.

1

Quelque chose comme ça?

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

Pour une liste des commandes disponibles, voir http://ss64.com/nt/

Questions connexes