Script .bat renomer fichier (win7)

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.

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. 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!
    1. 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
      1. 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)
        1. 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