[MS-DOS] script de conversion date

Résolu
Blue Boy Maxime Messages postés 65 Statut Membre -  
 alf -
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. ml_13
     
    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%
    2
  2. M&M Messages postés 5058 Statut Contributeur 669
     
    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
    }
    _ç_§:
    (.)#(.)
    0
  3. Blue Boy Maxime Messages postés 65 Statut Membre 18
     
    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+
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. M&amp;M Messages postés 5058 Statut Contributeur 669
     
    Oui, tu as bien fait. Ah, le pascal, c'est beau !
    _ç_§:
    (.)#(.)
    0
  6. ICeman
     
    merci, ca ma bien aider ton premier script
    0
  7. fcvb
     
    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
    -2
    1. alf
       
      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
      0