rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

[batch] Tester l'existence d'un répertoire (a

Posté par mazkime, le vendredi 21 septembre 2007 à 16:39:00
Bonjour à tous.
J'écris un script batch dans lequel j'ai besoin de tester l'existence d'un répertoire. Pour ça, j'utilise la commande "if exist %1\nul" ou %1 est un argument appelé avec mon script (en fait, j'exécute mon script en mode graphique en cliquant sur répertoire sur mon bureau, grâce à l'onglet "ouvrir avec" dans lequel j'ai mis mon script). %1 contient donc le chemin du répertoire sélectionné.

J'ai fait quelques tests : tout se passe très bien quand il n'y a pas d'espaces dans le chemin de mon répertoire, mais s'il y a un espace (ce qui arrive tout le temps pour un répertoire qui se trouve sur mon bureau, puisqu'il y a 'Documents and Settings' dans le chemin...) la valeur retournée par le test est toujours fausse.

Ceci provient du fait, sans doute, que dans ce cas le chemin de mon répertoire est mis entre guillemets "C:\Documents and Settings\etc ..."
J'ai essayé en enlevant les guillemets, en les déplaçant juste autours de "Documents and Settings" mais rien n'y fait, ça ne marche toujours pas.

Quelqu'un aurait-il une solution pour moi ?
Merci
Configuration: Windows XP
Firefox 2.0.0.7
Répondre à mazkime  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
dubcek, le vendredi 21 septembre 2007 à 16:42:04
mettre la variable entre guillemets "%1"
Répondre à dubcek

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mazkime, le vendredi 21 septembre 2007 à 17:05:33
j'ai fait le test et ça ne marche pas. Visiblement, ça ne vient pas seulement de mon script, mais même directement dans la console, je n'arrive pas à faire fonctionner mon test.
Je m'explique :

si je crée un répertoire TEST directement à la racine de C, et que je teste son existence :

if exist C:\TEST\nul echo C'est un répertoire

le test va bien marcher et m'affichier "C'est un répertoire"

Par contre, si je crée un répertoire "TEST TOTO" et que je teste son existence, le teste renvoie toujours faux (donc il ne voit pas que c'est un répertoire), et ce quelque soit la ligne de commande que je tape :

if exist C:\"TEST TOTO"\nul echo C'est un répertoire
if exist "C:\TEST TOTO"\nul echo C'est un répertoire
if exist "C:\TEST TOTO\nul" echo C'est un répertoire

Je cherche donc comment faire marcher le test directement dans la console. Dans un deuxième temps, je l'incluerai dans le script (en espérant que ça soit simple...)
Répondre à mazkime

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mazkime, le vendredi 21 septembre 2007 à 18:15:09
J'ai finalement trouvé la solution à mon problème, grâce à... microsoft !
En cherchant désespérément sur le net, je suis tombé sur la page suivante : http://support.microsoft.com/kb/463550/fr

Ils s'y prennent d'une façon différente de la mienne : ils essaient de copier un fichier dans le répertoire que l'on veut tester, puis testent l'existence du fichier. Je trouve ça moins élégant, mais au moins ça marche !

A+
Répondre à mazkime

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Drallieiv, le jeudi 13 décembre 2007 à 11:38:59
if exist "C:\TEST TOTO\nul" echo C'est un répertoire

c'est déja mieux
Répondre à Drallieiv

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mazkime, le jeudi 13 décembre 2007 à 20:07:20
J'avais déjà testé cette solution, et elle ne marche pas. J'ai finalement gardé la solution Microsoft qui marche très bien.
Répondre à mazkime

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jb36123, le jeudi 7 février 2008 à 14:53:43
Bonjour

Ayant eu le meme probleme je me suis aussi creuse la tete...
La solution MS ne me satisfaisait pas, surtout pour le cas ou on a pas les droits en ecriture ...

J'ai trouve la solution suivante
la commande "dir" definie la variable ERRORLEVEL à 0 qd le reperoire existe et à 1 qd il n'existe pas ...
Répondre à jb36123

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 stef78, le mardi 10 juin 2008 à 15:15:35
Bonjour à tous,
j'avais la même problématique

le if exist c:\toto\ commande

fonctionne

a plus
Répondre à stef78
Logiciels pertinents trouvés dans les téléchargements
Télécharger DSL Test 2.0.0.6DSL Test - DSLtest est constitué d'un logiciel à télécharger gratuitement et de serveurs de test. Ces équipements vous permettent...Catégorie: ADSL
Licence: Freeware/gratuit
Télécharger Ultimate Boot CD 4.1.1Ultimate Boot CD - Ultimate Boot CD (UBCD) est un CD bootable contenant une panoplie d'outils pouvant se révéler d'une grande utilité lorsque...Catégorie: Système
Licence: Freeware/gratuit
Télécharger MemTest86 3.4aMemTest86 - MemTest86 est un logiciel libre très utile permettant de tester très méticuleusement les barrettes de mémoire ( RAM )...Catégorie: Diagnostic
Licence: Open Source
Télécharger SyncBack 3.2.18.0SyncBack - SyncBack est un logiciel de synchronisation de répertoires. Il peut être utilisé: pour effectuer des backups de fichiers...Catégorie: Sauvegarde
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « [batch] Tester l'existence d'un répertoire (a »