N'étant pas particulièrement expert en batch, j'ai un petit souci concernant la création d'un script.
Je m'explique : Le but de mon script est d'accéder à un certain répertoire et de supprimer 2 fichiers spécifiques. Ce script devra être launchable sur plusieurs PC diffèrent. Mais un problème survient :
- les fichiers a supprimées se trouvent sur un répertoire du typer : C:/>Program Files/<folder>/xxxxxxxxxx
le xxxxxxxxxx n'est jamais le mémé sur chaque PC
==> Existe t'il une commande qui permet d'ouvrir un dossier (unique dans le répertoire) sans connaitre son nom a l'avance?
Script impossible?
Modérateur : WIN32-[GG]
Re: Script impossible?
J'ai peut être trouver une solution :
Le point commun de tout les répertoires xxxxxxxxx est que le nom est constitué que de chiffre (encore une fois, 1 seul dossier xxxxxxx est présent dans le répertoire parent). L'idée et d'ouvrir le répertoire avec une commande du style cd 1*
Avec une boucle on parcourt donc tous les chiffres de 1 à 9 pour pouvoir rentrer dans celui ci.
Mon script de test donne :
set I=0 /* définition variable I qui vaut 0
cd \ /* acces a la racine de c
cd Documents and Settings /* répertoire ou se trouve la fameux sous répertoire
cd Y99BCA /* idem
for /l %%I in (0,1,9) /*pour i=0 si l'action n'est pas possible, on incrémente de 1 jusqu'a 9
do cd %I%* /* ouverture du répertoire valeur de I*
del blabla.txt /* suppression de blabla.txt
Mais ça ne fonctionne pas, j'ai surement mal defini mon FOR
Pouvez vous m'aider??
Le point commun de tout les répertoires xxxxxxxxx est que le nom est constitué que de chiffre (encore une fois, 1 seul dossier xxxxxxx est présent dans le répertoire parent). L'idée et d'ouvrir le répertoire avec une commande du style cd 1*
Avec une boucle on parcourt donc tous les chiffres de 1 à 9 pour pouvoir rentrer dans celui ci.
Mon script de test donne :
set I=0 /* définition variable I qui vaut 0
cd \ /* acces a la racine de c
cd Documents and Settings /* répertoire ou se trouve la fameux sous répertoire
cd Y99BCA /* idem
for /l %%I in (0,1,9) /*pour i=0 si l'action n'est pas possible, on incrémente de 1 jusqu'a 9
do cd %I%* /* ouverture du répertoire valeur de I*
del blabla.txt /* suppression de blabla.txt
Mais ça ne fonctionne pas, j'ai surement mal defini mon FOR
Pouvez vous m'aider??
-
- King Of Batch
- Messages : 66
- Enregistré le : 06 juil. 2010 17:37
- Contact :
Re: Script impossible?
Bonjour,
Ton cd est mal écrit:
Cependant ça m'étonnerai que l'on puisse utiliser cd avec des caractères génériques. Je te recommande la commande dir:
Si sa ne fonctionne pas change le nombre après tokens=
Ton cd est mal écrit:
Code : Tout sélectionner
cd %%i%*
Code : Tout sélectionner
for /f "tokens=2 delims=" %%i in ('dir /rep') do (
If not "%%i"==".." set /a var=!var!+1
If not "%%i"=="." set /a var=!var!+1
If exist %%i set /a var=!var!+1
If "!var!"=="3" cd %%i%&goto suite
)
:suite
Ce forum vous à aidé? Faites le vivre en vous connectant régulièrement et en répondant au questions posées sur le forum si vous avez une solution