commande utilisateur batch?

  • Auteur de la discussion vico-la-patate
  • Date de début

vico-la-patate

Nouveau membre
Salut à tous, voilà je commence à faire de la programmation de base, notamment en batch, et je me créé des petits programmes pour me faciliter la vie. Or là je plante! J'essaye de créer un fichier, qui, une fois éxécuté, va copier un dossier "XXX" de "Mes documents" vers un autre dossier, mais "XXX" est à l'adresse "C:\Documents and Settings\NOM-UTILISATEUR\Mes documents\XXX
Le problème est là, quelle commande puis-je utiliser pour copier le dossier tout en intégrant une variable qui va copier le dossier XXX qui lui même diffère d'adresse selon le PC, en effet le "NOM-UTILISATEUR" change selon les PCs! Existe-t-il une commande qui peut faire varier l'adresse à laquelle je vais copier le dossier.
En gros je cherche une commande "universelle" qui va copier le dossier "XXX" de "Mes documents" vers un autre dossier,(ex: une clé USB)
Merci beaucoup
 

zeb

Modérateur
Il existe un certain nombre de variables quand on programme en batch.
Tape la commande suivante pour toutes les voir s'afficher :
[fixed]C:\> SET[/fixed]

Je pense que HOMEDIR et HOMEPATH devraient te convenir.

Si tu veux t'en servir dans un programme en batch, utilise la syntaxe suivante : %variable%

Exemple :
[fixed]ECHO Le dossier Mes Documents est à l'adresse : %HOMEDIR%%HOMEPATH%[/fixed]

Enjoy !
 

vico-la-patate

Nouveau membre
Re! Bon bah j'ai essayé mais rien à faire! Donc je vais essayer de me réexpliquer lol :ange: ... Donc voilà, j'aimerai créer un fichier .bat à la racine de ma clé usb, qui une fois lancé, va copier le dossier C:\Documents and Settings\"XXXXX"\Mes documents\Mes images vers un dossier "Images" à la racine de ma clé! ("XXXXX" étant le nom du pc? J'aimerai donc trouver une commande me permettant de copier ce dossier vers ma clé usb, qui marcherait avec n'importe quel nom de pc... Je sais j'ai du mal à me faire comprendre! Lol!
Quelqu'un aurait-il une idée de ce que je pourrais écrire? Merci beaucoup
 

vico-la-patate

Nouveau membre
Merci beaucoup , ça marche à un seul hic près! En fait j'ai du mal m'expliquer, car ça colle bien le dossier mais en fait je voudrais le dossier dans "Mes documents" mais sur la session sur laquelle je suis connecté, en effet, le "XXXXX" dans C:\Documents and Settings\XXXXX\Mes documents\Mes images n'est pas le même que dans le menu démarrer, je n'y comprends rien, je crois qu'il y a un rapport avec le nom du pc et le nom de l'utilisateur non?! Merci de répondre Merci beaucoup
 

vico-la-patate

Nouveau membre
Petite précisison, je viens de remarquer que le "XXXXX" dans C:\Documents and Settings\XXXXX\Mes documents\Mes images est la contraction du nom qui est marqué dans DEMARRER suivit d'un "." puis du "nom complet de l'ordinateur" disponible lors d'un clic droit ===>propriétés dans le Poste de travail, ma question est donc, qu'est-e que je peux faire pour intégrer en plus de %USERNAME% afin d'avoir l'adrese exacte du dossier dans Mes documents?
 

vico-la-patate

Nouveau membre
Bon j'en ai marre d'être un boulet lol, personne n'aurait un script qui permet de copier un dossier situé dans "Mes documents" de l'utilisateur enregistré? Merci
 

guillaumech

Expert
[cpp]#!/bin/bash
echo "Chemin dossier a copier : "
read
chemin_dossier=$REPLY
echo "Chemin de copie : "
read
cp -R $chemin_dossier $REPLY [/cpp]
En espérant que le bash s'interprete pareil sous windows que sous unix.
Edit : en demandant le chemin, tu évites ton problème d'utilisateur ... :(
 

zeb

Modérateur
Oups, au temps pour moi , ce n'est pas %HOMEDIR% mais %HOMEDRIVE%.
[fixed]ECHO Le dossier Mes Documents est à l'adresse : %HOMEDRIVE%%HOMEPATH%[/fixed]

Par contre, 1° puisque je te donnais la commande set, tu aurais pu t'en rendre compte tout seul, 2° on lol peut lol savoir lol pourquoi lol tu lol te lol marres lol colle lol ça lol ? C'est lol de lol ma lol gueule lol que lol tu lol te lol fous ?

En espérant que le bash s'interprete pareil sous windows que sous unix.
:pfff: Guillaumech, m'enfin, ce serait le bonheur sur terre ça !!!
 

shalkare

Nouveau membre
Bonjour. Ce sujet est vieux, mais comme il m'a été utile, je contribue ^^

Donc, merci pour la commande SET, qui m'a permis d'apprendre qu'il y a plus court que %HOMEDRIVE%%HOMEPATH%, c'est

%userprofile%

Pour une sauvegarde TOTAL, la commande, exécutée depuis un .bat, donne:

Xcopy "%userprofile%"\BACKUP h:\BACKUP /E /W /Y
pause

Où backup est un dossier préparé à l'avance, contenant ce que je veux sauvegarder;
où H: est un lecteur réseau, pointant vers un dossier unique par utilisateur(avec droit d'écriture);
/E pour copier les répertoires et sous répertoires (y compris les vides);
/W pour appuyer sur une touche avant de commencer la copie (desfois que l'utilisateur ne veuille plus lancer le .bat)
/Y pour supprimer la demande de confirmation de remplacer les fichiers de destination déjà existant (simplifie le syndrome de l'utilisatrice "plante verte": moins elle se pose de questions, moins elle appel le service informatique)
pause pour voir ce qui s'est passé.

Copier le tout dans un fichier texte, et remplacer le .txt par .bat. Double cliquer pour lancer l'exécution.
Je n'ai pas trouvé plus rapide pour copier des données.

Ce qui est pas trop mal, c'est que si dans le dossier de destination, il y a de vieux fichiers, ils ne seront pas effacer.
Ce qui, au fur et à mesure des backup, augmentera le poids de ce dossier, je vous l'accorde.
Ca ne sert à rien?
héhéhé...les gars en informatique, qui gèrent les données "utilisateurs" d'une entreprise, vous confirmeront tous cette petite phrase casse-moral: "AAARGH (bande de naz) ! il est où mon dossier d'il y a 5 ans pour le client Patate ??? j'en ai besoin pour HIEEEEEER (vous servez à rien)!"

tchao !
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 049
Membres
1 586 282
Dernier membre
Yannick3553
Partager cette page
Haut