Script .bat renomer fichier (win7)

vigogne Messages postés 9 Statut Membre -  
Pierrot6150 Messages postés 3186 Statut Membre -
Bonjour,

Je n'ai aucune expérience en script sous windows ayant été "éduqué sous linux"

Je voudrais automatiser, sous windows seven (ça semble avoir son importance) avec un script .bat le renomage et le déplacement de mes fichiers toutes les heures. Je m'explique : un logiciel récupère d'une machine des fichiers chaque heure et les place dans un dossier. Je veux les renomer au format YYYYMMDD_HHMM_nomdufichier.txt et le déplacer vers un dossier "destination".

J'ai réalisé quelques tests qui me laissent perplexe :

J'ai tapé en ligne de commande (dans dos) :

for /F "delims=/ tokens=1,2,3" %1 in ('echo %date%') do set A=%3%2%1
set B=%A:~0,6%%A:~10,2%

pour récupérer la date au format YYYYMMDD, ça a marché.

Lorsque je tape les deux mêmes lignes dans un fichier ".bat" et que je l'exécute, j'obtiens un message d'erreur avec "in was unexpected at this time"...

J'ai tenté de faire la même chose pour récupérer l'heure en faisant quelques chose comme

for /F "delims=/ tokens=1,2,3,4" %1 in ('echo %time%') do set A=%3%2

mais cela me retourne la valeur des secondes au lieu de me retourner hhmm

Bref je suis complètement paumé!

Quelqu'un pour m'aider à y voir plus clair?

D'avance, merci.

A voir également:

3 réponses

vigogne Messages postés 9 Statut Membre
 
Bon et bien j'aurais p-e du attendre encore un peu avant de poster

J'y suis parvenu en faisant

set A=%DATE:~10,4%%DATE:~7,2%%DATE:~4,2%_%time:~0,2%%time:~3,2%
echo %A%

(mais nomdidju, il faut trouver! selon qu'il affiche ou non "the current time is", je ne savais pas si je devais comptabiliser les caractères)

J'essaierai d'automatiser le renomage déplacement cet après midi! Bon appétit!
0
dg_belmontet Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   128
 
Bonjour,

Si réellement vous voulez lancer le script sur Windows 7, je ne vois pas comment ce qui est écrit au-dessus puisse fontionner.

J'ai moi-même un Windows 7 et en saisissant dans une fenêtre DOS: echo %date%
le résultat est: 06/03/2012 (est c'est tout...)

donc le code approprié serait par exemple :

Set newdate=%date:~6,4%%date:~3,2%%date:~0,2%_%time:~0,2%%time:~3,2%

et on obtient bien dans la variable newdate: 20120306_1409

Cdlt
0
vigogne Messages postés 9 Statut Membre
 
Pour ma part j'obtiens
Tue 03/06/2012
lorsque je tape "date".

C'est bien ce qui m'ennuie dans ces histoires de batch, la sortie semble terriblement dépendante de la version (et entre nous à part pour faire c**** le monde il faudra qu'ils m'expliquent pourquoi ils ont fait ce genre de changements)
0
Pierrot6150 Messages postés 3186 Statut Membre 560
 
La sortie de date est propre à chaque utilisateur (tout dépend comment tu as configurer Date - Heure sous Windows)

Date courte:
j/MM/aaaa = mar. 06/03/2012

jj/MM/aaaa = 06/03/2012
0