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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
10 mars 2010 à 07:18
for /f "delims=" %%i in ('dir /b bonbon*.*') do @set b=%%i
0
Ca marche impec, merci :)
0