[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. 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
      }
      _ç_§:
      (.)#(.)
      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
          Oui, tu as bien fait. Ah, le pascal, c'est beau !
          _ç_§:
          (.)#(.)
          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