Copie dans répertoire par le début de son nom

Résolu/Fermé
methylene - 8 mars 2010 à 11:06
 methylene - 10 mars 2010 à 08:46
Bonjour,

Je cherche juste un moyen en batch de copier un fichier d'un répertoire A vers un répertoire B pas entièrement défini.

Je m'explique :

copy C:\repertoireA\test1.txt C:\Progra~1\Monnaie\Repert~1\

Le souci c'est que le répertoire destination n'a pas un nom fixe, seul le début est commun.

Par exemple je vais avoir des mises à jour, donc mon nom de répertoire destination va changer :

bonbon
bonbon v 2.0
bonbon v 4.5
bonbon v 3 r 14

etc...

En gros seule la fin du nom d emon répertoire va changer, et je veux donc identifier mon répertoire uniquement par les "n" lettres de début.

Est-ce possible ? J'ai essayer plein de solutions, rien ne marche et mes recherches sur internet ont été infructueuses.

Merci

7 réponses

Personne n'a d'idées ?
0
dubcek
Messages postés
18503
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 mai 2022
5 548
9 mars 2010 à 14:14
hello
tu peux faire "bonbon*"
mais il faut qu'il n'y en ait qu'un

on peut aussi faire
C:> dir
...
09/03/2010  14:11    <REP>          bonbon
09/03/2010  14:11    <REP>          bonbon v 2.0
09/03/2010  14:12    <REP>          bonbon v 3 r 14
09/03/2010  14:11    <REP>          bonbon v 4.5

C:>
C:> for /f "delims="  %a in ('dir /b') do @set b=%a

C:> echo %b%
bonbon v 4.5
0
Alors je vois l'idée mais je n'arrive pas à al mettre en place.

Pour le bonbon*, cela ne marche pas :

copy C:\repertoireA\testadditionel1.txt "C:\Progra~1\Monnaie\Bonbon*"

Il me le copie dans C:\Progra~1\Monnaie\ en renommant testadditionel1.txt en Bonbonditionnel1.txt, en gros les 6 premiers caractères sont remplacer.

En effet il n'y aura qu'un dossier bonbon dans mon dossier monnaie, mais ce dossier bonbon pourra avoir différente terminaison comme cité précdemment.

Ensuite pour la deuxième solution, j'ai essayé différente combine mais je n'y arrive pas en faisant :

/dir C:\Progra~1\Monnaie\

déjà il semblerait qu'il faille faire plutôt

cd C:\Progra~1\Monnaie\

Puis utilisation de for

for /f "delims= " %a in ('dir /b') do b=%a

j'obtiens b=bonbon v 4.5 (puisque c'est le seul dossier bonbon dans mon repertoire)

Si j'ai 2 dossiers bonbon par exemple bonbon v 4.5 et bonbon v 3.2, il va me mettre 2 lignes
C:\Progra~1\Monnaie>b=bonbon v 3.2
'b' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.

C:\Progra~1\Monnaie>b=bonbon v 4.5
'b' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.

Il y a donc un souci, car quand je fais echo %b ou echo %b%, il ne m'affiche que %b ou %b%.
0
Bon ben voila :

@set rep2=c:\progra~1\Monnaie\
cd %rep2%
@echo %rep2%
for /f "delims=" %%i in ('dir /b') do @set b=%%i
@echo %b%
@set rep2=%rep2%%b%
@echo %rep2%

Cela m'affiche bien c:\progra~1\Monnaie\Bonbon v 4.0
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le seul souci, c'est que si j'ai plusieurs dossier dans mon répertoire, par exemple :

Bonbon v4.0
Sucrerie
Chocolat

Il va utiliser le dernier répertoire lister par la fonction dir, soit chocolat, or je voudrai qu'il selectionne toujours le répertoire commencant par Bonbon, quelqu'ensoit la fin.

Merci
0
dubcek
Messages postés
18503
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 mai 2022
5 548
10 mars 2010 à 07:18
for /f "delims=" %%i in ('dir /b bonbon*.*') do @set b=%%i
0
Ca marche impec, merci :)
0