Copy DOS dans sous répertoire

Salut tout le monde,

j’espère que je vais etre claire dans mon explication.

je voudrais copier le fichier prefs.js (de thunderbird) qui se trouve dans “C:\Documents and Settings%username%\application data\thunderbird\nom_du profil_thunderbird\prefs.js”.

C’est pour en faire une copy sur le D: pour en faire une sauvegarde.

Le problème est que le “nom_du profil_thunderbird” ne se nomme jamais pareil sur chaque pc.

Voila ce que j’ai tapé : copy “C:\Documents and Settings%username%*.js” d:. Le souci c’est que ca cherche a copier le fichier qui se trouve dans %username% et non dans ses sous répertoire !!

Comment faire ??

j’suis peut etre pas très claire mais po facile a expliquer quand meme

Je n’ai pas Thunderbird ici au boulot, mais y a un fichier qui liste le profil par défaut.

Bonjour,

Essaye cette commande:

for /f “tokens=*” %%i in (‘dir /b “%appdata%\thunderbird*_thunderbird”’) do copy /y “%appdata%\thunderbird%%i*.js” D:\

Tous les guillemets, parenthèses et apostrophes sont nécessaires.

A+
Edité le 24/08/2010 à 21:57

C’est ce fichier qui contient le profil par défaut : %APPDATA%/Thunderbird/profiles.ini

Plutôt chiant à parser, je pense que la technique de webmaster A sera plus pratique…

Salut webmaster A

Merci de m’avoir répondu

pourriez vous me traduire ce que fait cette ligne de commande :
for /f “tokens=*” %%i in (‘dir /b “%appdata%\thunderbird*_thunderbird”’) do copy /y “%appdata%\thunderbird%%i*.js” D:\

j’aime comprendre…

cela dit, ca ne fonctionne pas : il me dit fichier introuvable

Bonsoir,

Excuse moi pour le retard mais je suis un peu occupé maintenant.

Cette commande est destinée à être exécutée dans un batch ( fichier .bat).

Je viens d’installer Thunderbird pour pouvoir t’aider.

En fait les profils sont crées dans le répertoire [b]%appdata%\Thunderbird\Profiles[/b] et le profil par défaut dans un sous-dossier nommé [quelque chose].default. Je ne le savais pas et la commande que je t’ai donnée ne marchera pas. Pour copier le javascript existant dans ce dossier vers la racine de [b]D:[/b], la commande doit être:

Pour un batch:

[b]for /f “tokens=*” %%i in (‘dir /b “%appdata%\Thunderbird\Profiles*.default”’) do copy /y “%appdata%\Thunderbird\Profiles%%i*.js” D:[/b]

Pour taper à l’invite de commandes:

[b]for /f “tokens=*” %i in (‘dir /b “%appdata%\Thunderbird\Profiles*.default”’) do copy /y “%appdata%\Thunderbird\Profiles%i*.js” D:[/b]

La différence est dans le %%i

Dans un batch il faut mettre deux %%, et à l’invite de commandes il faut en mettre qu’un.

Voici une lecture de cette commande:

Pour le dossier existant dans [Ton profil]\Application data\thunderbird\Profiles[n’importe quoi].default"’, copie le fichier avec l’extension .js vers la racine de la partition D:

La commande marche, je l’ai essayée, mais c’est plus pratique de créer un petit batch pour l’exécuter avec un double-clic.

Poste si tu as besoin d’aide pour le créer.

PS J’ai édité ce post après avoir installé Thunderbird et essayé la commande.

A +
Edité le 26/08/2010 à 09:41

Bonjour,

j’ai modifié le script : for /f “tokens=*” %%i in (‘dir /b “%appdata%\thunderbird[b]profiles[/b]*.default”’) do copy /y “%appdata%\thunderbird[b]profiles[/b]%%i*.js” D:\

Ca marche !! :super:

désolé mais j’ai du mal a comprendre ceci : for /f “tokens=*” %%i. peux tu me le traduire stp ?

autre souci : il se peut sur certains pc qu’il y ait 2 profiles (*.default).
j’ai testé et le 2nd prefs.js écrase le 1er. D’où ma question : comment faire pour copier les 2 sans qu’ils s’écrasent ??

Excuse moi, je te parait peut etre un peu chiant mais…

La commande for est peut être la plus dynamique de toutes les commandes dos.

Tu peux parser des fichiers, ou du texte dans les fichiers des répertoires, des jeux de caractères. etc.

Tout est expliqué dans ce PDF que j’ai hébergé pour toi.

Si tu as deux profils .default, il vaut mieux créer un répertoire avec le même nom dans D: et après copier les javascripts vers ces répertoires. Crée un batch avec ce code:

@echo off
for /f “tokens=*” %%i in (‘dir /b “%appdata%\thunderbird\profiles*.default”’) do (
md “D:%%i”
copy /y “%appdata%\thunderbird\profiles%%i*.js” “D:%%i”
)

Ceci créera un sous-répertoire de D:\ avec le nom du profil et copiera le .js correspondant vers le nouveau répertoire crée.

A + :slight_smile:

Merci beaucoup pour toutes tes explications

j’ai modifié le script : j’ai mis :

for /f “tokens=*” %%i in (‘dir /b “%appdata%\thunderbird\profiles*.default”’) do copy /y “%appdata%\thunderbird\profiles%%i*.js” “%appdata%\thunderbird\profiles%%i\save.js”.

Ca m’a l’air de fonctionner. le fameux save.js ne disparaitra pas, contrairement au prefs.js qui me fait parfois des blagues

ptite précision …

dans un batch les variables sont précédées de deux % : %%i
en ligne de commande, les variables ne sont plus précédées que d’un seul % : %i.

sinon, faudrait passer le topic à [résolu] !