Se connecter avec
S'enregistrer | Connectez-vous

Résolu - Un grand Merci - Commande Dos pour renomer fichiers

Dernière réponse : dans Programmation

:bounce: 

Bonjour à tous,
Je cherche à faire une chose très simple en commande dos, dans un batch mais je suis nulle en ligne de code.

Je voudrais, dans un répertoire "Bachup" existant copier deux fichiers excel mais en les renomant systématiquement avec la date du jour.

voici la ligne de commande pour la copie, pas de souci, ça marche mais je n'arrive pas à demander de les renomer en incluant la date pour le différentiel du nom et par la même, créer une archive.

@echo off
xcopy *.xls \\srvpardfs2\DFSRoot\OPER-CME-LOG\_Private\Immobilier\SituImmo\Backup\*.xls /Y /I /R

Pause

Ps : Je ne peux pas utiliser les programme tel que Tagguer ou autres !!!

Merci pour votre aide, je pête un câble !!!! :pt1cable: 
Lassé par la pub ? Créez un compte


C'est des commandes dos pas du code :hello: 

Copy plutot le repertoire en entier pour renomer c'est plus simple

REN REP1 REP2(ou RENAME)

XCOPY REP2\\srvpardfs2\DFSRoot\OPER-CME-LOG\_Private\Immobilier\SituImmo\Backup\REP2/Y /I /R
:bounce: 

la date sera dans les proprietées du repertoire comme pour tous les repertoires ou alors un fichier texte avec

type %date% %time% > historique.txt

voila un exemple :bounce: 

Heu, oups, je suis même nulle dans les nom entre commande Dos et Code....

Merci beaucoup, tes cdes Dos fonctionnent mais il y a un hic, je souhaiterais que le nom du fichier change et qu'il soit dans le même rep Backup.

Exemple :
Backup/fichier310707
Backup/fichier010807

etc etc.... j'ai essayer d'incrémenter la variable %date% après ma ligne de cde (xcopy *.xls \\srvpardfs2\DFSRoot\OPER-CME-LOG\_Private\Immobilier\SituImmo\Backup\*.xls %date% /Y /I /R) mais ça ne marche pas, il me dit que c'est invalide.

Tu vois, je suis sûre que c'est rien mais pour moi là, ça comment à l'être....

Expert Programmation

Regarde ça Ashruna :
ECHO %DATE%
ECHO %DATE:~6,4%
ECHO %DATE:~3,2%
ECHO %DATE:~0,2%

FOR %%I IN (*.XLS) DO @ECHO %%~fI %%~nI %%~xI


Allez, on mélange tout :
FOR %%I IN (*.XLS) DO @ECHO %%~fnI-%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%%%~xI
Expert Programmation

C'est peut-être du chinois, mais je t'ai fait la méthode à mimile progressive.

Pour les boucles FOR en DOS, sur une ligne de commande, il faut écrire
FOR %I IN (*.XLS) DO truc %I
Mais dans un fichier BAT ou CMD, il faut écrire
FOR %%I IN (*.XLS) DO truc %%I
C'est laid, oui je sais :sarcastic: 

Bon alors, je reviens pour vous dire que je suis une plaie et pire que la glue car je ne vois pas de changement apparant dans le nom de mes fichiers et la date n'apparait pas !!!! MAlgré la ligne de code

@echo off

For %%I in (*.xls) do @echo %%~fnI-%date:~6,4 %%Date:~3,2 %%Date:~0,2 %%~xI
xcopy *.xls \\srvpardfs2\DFSRoot\OPER-CME-LOG\_Private\Immobilier\SituImmo\Backup\*.xls /Y /I /R

Pause

Cherhcer l'erreur !!!
Expert Programmation

Mais non, tu n'es pas une plaie...

En fait, zeb t'a donné tout ce qu'il faut pour résoudre ton problème. Simplement, il s'agit d'un exemple d'utilisation: tu dois l'adapter à ton cas de figure.

Pour faire ce que tu désires, il suffit de mettre la ligne suivante dans ton fichier .bat:

FOR %%I IN (*.XLS) DO COPY %%I "\\srvpardfs2\DFSRoot\OPER-CME-LOG\_Private\Immobilier\SituImmo\Backup\%%~nI%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%%%~xI%"


et tous les fichiers .xls du répertoire de lancement seront copiés avec la date dans ton répertoire de sauvegarde.

voilà, voilà...

Meeeeeeerci à Zeb et Storos de m'avoir éclairé et de ne pas m'avoir pris pour un boulet..... C'est génial, ça fait tellement longtemps que je cherche !!!!
alors ça marche pour que pour un seul fichier malgré le Joker *.xls, peut-être qu'il faudrait que je rajoute un truc pour que le deuxième fichier soit pris en compte !!!!!

Heuuuu, oups !!!

@echo off

FOR %%I IN (*.XLS) DO COPY %%I

"\\srvpardfs2\DFSRoot\OPER-CME-LOG\_Private\Immobilier\SituImmo\Backup\%%~nI%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%%%~xI

%"

Pause

A savoir que le nom du deuxième fichier comporte un espace et à un nom alfanumérique... C'est sa seule spé.
Expert Programmation

Citation :
Eh, les rois du bounce, les lignes de commande entre les balises [fixed][/fixed] s'il vout plaît :o 


Moderator dixit :
Merci de respecter les règles de publication de ce site s'il vous plaît.
Je n'aime pas à avoir à me répéter [:zeb]

Expert Programmation

L'espace doit perturber la ligne de commande...

Essaye ça:

FOR %%I IN (*.XLS) DO COPY "%%I" "\\srvpardfs2\DFSRoot\OPER-CME-LOG\_Private\Immobilier\SituImmo\Backup\%%~nI%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%%%~xI%"


C'est la même chose mais en mettant le premier %%I entre guillemets... ;) 

C'est terrible, ça marche nickel
Je te remercie encore énormément de ta patience et de ta solution...
Je crois que je ne pourrais jamais te rendre la pareille et je le regrette.
Désolée de ne pas avoir respectée les codes d'usages.
Merci encore énormément, je m'en vais mettre en place ma proc...
Chris

kk2b a dit :
L'espace doit perturber la ligne de commande...

Essaye ça:

FOR %%I IN (*.XLS) DO COPY "%%I" "\\srvpardfs2\DFSRoot\OPER-CME-LOG\_Private\Immobilier\SituImmo\Backup\%%~nI%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%%%~xI%"


C'est la même chose mais en mettant le premier %%I entre guillemets... ;) 


:)  j'ai essayé sa marche bien mais je n'ai pas mis de guillemet

FOR %%I IN (*.XLS) DO COPY "%%I" "C:\Backup\%%~nI%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%%%~xI%"
Expert Programmation

Citation :
Grosbourge> Donne des exemples qui fonctionnent.

Eh, les rois du bounce, les lignes de commande entre les balises [fixed][/fixed] s'il vout plaît :o 


Citation :
Moderator dixit :
Merci de respecter les règles de publication de ce site s'il vous plaît.
Je n'aime pas à avoir à me répéter [:zeb]


2 fois ! [:zeb]
Grosbourge gagne 2 jours de TT
Lassé par la pub ? Créez un compte