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

Résolu
methylene -  
 methylene -
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
Configuration: Windows XP / Internet Explorer 8.0

7 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  2. methylene
     
    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
  3. methylene
     
    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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. methylene
     
    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
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    for /f "delims=" %%i in ('dir /b bonbon*.*') do @set b=%%i
    0