[MS-DOS] script de conversion date

Résolu
Bonjour,

je viens d'écrire un script qui dans une fenetre MS-DOS de XP qui renverse le format d'une date. Le voici

set YYYYMMDD=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%
echo %YYYYMMDD%

Ce script fonctionne très bien sur mon pc.

Si je vais sur un pc en windows 98 et MS-DOS 4.10 , rien ne s'affiche :(

Que puis-faire ?
Où trouver de la doc sur la programmation des scripts en ms-dos ?

Merci de votre aide.

A+
--
Blue Boy Maxime
Configuration: Windows XP Pro

8 réponses

  1. voila un ptit script si vous ca vous interesse...

    @echo off
    ::***********************************************************
    ::* *
    ::* Creating New Directories in Date/Time Sequence *
    ::* Author Manarii *
    ::* Date : 16.09.2007 *
    ::* *
    ::* Purpose : *
    ::* This bath file will give the opportunity to *
    ::* the user to create a new file automatically *
    ::* with the actual date and he has just to enter *
    ::* the name of his file. *
    ::***********************************************************
    echo.

    :: get all value of the date separetly[year.month.day]
    set year=%DATE:~6,4%
    set month=%DATE:~3,2%
    set day=%DATE:~0,2%

    :: Ask for the name of the directory
    echo Please enter the name of your new directory...
    set /P dirname=%year%.%month%.%day%_

    :: Creation of the new directory
    md %year%.%month%.%day%_%dirname%
    1. bonjour
      excuser moi de vous déranger mais je ne sais pas comment passer d'un fichier msdos
      a un fichier video 3gp compatible avec mon téléphone mobile
      merci d'avance pour vos conseils
      1. cette dernière question ne veux rien dire... quand a moi, je recherches un powertool qui permettrai d'ajouter le contenu d'un .txt a une table access en interpréteur de commande
    2. Contributeur
      Oui, tu as bien fait. Ah, le pascal, c'est beau !
      _ç_§:
      (.)#(.)
      1. Salut,

        j'ai préféré faire un programme en pascal à insérer dans un batch.
        (pour ne pas insatller perl ou autre sur un serveur déjà bien chargé)

        Le programme mydate2.pas retourne une chaine de ce type:

        @set mydate=2006_02_02

        Je l'insére dans le fichier batch que voici, pour insérer la date dans un la variable mydate pour créer un nouveau nom de fichier.
        -------------------------------------
        @echo off
        mydate2 > toto.bat
        call toto.bat
        del toto.bat
        copy b*.log b%mydate%.log
        ------------------------------------

        je mets le fichier pascal: mydate2.pas que j'ai compilé avec freepascal.
        -------------------------------
        uses dos;

        var a,m,j,jour,heure,min,sec,cent:word;

        function leadingzeros(a : word) : string;
        var aux : string;
        begin
        str(a,aux);
        if a<10 then
        aux := '0'+aux;
        leadingzeros := aux;
        end;

        BEGIN
        getdate(a,m,j,jour);
        write('@set mydate=',a,'_',leadingzeros(m),'_',leadingzeros(j));
        END.

        -------------------------------

        Merci à tous de vos réponses éclairantes.
        A+
        1. Contributeur
          Les batch files de Dos et windows 98 ne comprennent pas la syntaxe actuelle. Et la variable %DATE% n'est pas dans l'environnement. A l'époque, c'était la croix et la bannière. J'utilise des scripts en awk ou en Perl, disponibles sous Dos.
          Exemple en Perl:
          #---- ACQUISITION DE LA DATE ET DE L'HEURE-----
            ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
            $mon++;
            $Year=($year>96)?1900+$year:2000+$year;
            $YMD=sprintf ("%4d-%s%d-%s%d", $year,($mon<10)?"0":"",$mon,  ($mday<10)?"0":"",$mday);
            $HH=sprintf("%2dh%s%d et %2d sec",$hour,($min<10)?'0':'',$min,$sec);
            print "Date : " $YMD $HH;

          En awk (ftp://ftp.simtel.net/pub/simtelnet/msdos/txtutl/awk320.zip ) :
          je crée un fichier temporaire et je le relis pour avoir la date courante, mais cela dépend du Country=033 dans le fichier Config.sys...
          BEGIN { 
              TMP="TEMP.TMP"
              #print "Usage: awk -f date.awk"
              system ("dir /4 "TMP" > " TMP)
              for (i=1;i<8;i++) {
                 getline < TMP
                 if (i> 4 && NF>=5) {
                   Date=$4; Time=$5
                   close(TMP) 
                   break
                 }
               }
            close (TMP)
            system ("del "TMP)
            split(Date,DD,"\/")
            YMD=DD[3]DD[2]DD[1]
            print "Date: "YMD" "Time 
            exit
          }
          _ç_§:
          (.)#(.)