Script .bat renomer fichier (win7)
vigogne
Messages postés
9
Statut
Membre
-
Pierrot6150 Messages postés 3186 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.
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:
- Script .bat renomer fichier (win7)
- Creer un fichier .bat - Guide
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
3 réponses
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!
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!
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
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