Je suis sur la console Windows en train d'essayer de savoir si un fichier/dossier existe ou non.
EXIST
peut être utilisé en batch, mais il n'est pas disponible sur la ligne de commande:
C:\Users\WIN7PR~1>EXIST C:\Users
'EXIST' is not recognized as an internal or external command, operable program or batch file.
La solution lorsque la ressource est un fichier est assez simple, comme l’indiquent d’autres:
C:\> IF EXIST C:\CONFIG.SYS ECHO C:\CONFIG.SYS exists.
Malheureusement, ce qui précède ne fonctionne pas pour les répertoires. La fonction EXIST renvoie le même résultat pour les dossiers manquants et présents. Heureusement, il existe une solution de contournement obscure:
C:\> IF NOT EXIST C:\FOLDER\NUL ECHO C:\FOLDER missing.
C:\FOLDER missing.
C:\> MD C:\FOLDER
C:\> IF EXIST C:\FOLDER\NUL ECHO C:\FOLDER exists.
C:\FOLDER exists.
Il s'avère que pour prendre en charge des constructions telles que l'ajout de >NUL
sur les instructions de commande, il existe une sorte de fichier virtuel nommé "NUL" dans chaque répertoire. La vérification de son existence équivaut à une vérification de l'existence du répertoire.
Ce comportement est documenté dans un article de la base de connaissances Microsoft ( https://support.Microsoft.com/en-us/kb/65994 ). a confirmé son comportement sur FreeDOS 1.1 et dans un shell de commande Windows 7.
EXTRA: L'article de la Base de connaissances indique que cette technique peut également être utilisée pour voir si un lecteur est présent. Dans le cas de la vérification de l'existence d'un lecteur, cependant, des mises en garde existent:
Une erreur Abort, Retry, Fail?
se produit si le lecteur n'est pas formaté.
L'utilisation de cette technique pour vérifier l'existence d'un lecteur dépend de la mise en œuvre du pilote de périphérique et peut ne pas toujours fonctionner.
Vous pouvez utiliser un simple
DIR C:\User
Vous pouvez utiliser la commande type
, elle retournera le contenu d'un fichier texte sans l'ouvrir, et pour un répertoire, elle retournera: Access est refusé.
Si le fichier ou le répertoire n'est pas disponible, vous obtenez le message suivant: Le système ne peut pas trouver le fichier spécifié.
Donc par exemple:
C:\>type c:\temp
Access is denied.
C:\>type c:\example.txt
Some example content in a text file
C:\>type c:\doesnotexist
The system cannot find the file specified.
Il suffit de mettre if
à l'avant :)
if exist C:\Users echo It exists!