Posez votre question Signaler

[MS-DOS] script de conversion date [Résolu]

Blue Boy Maxime 64Messages postés 18 décembre 2003Date d'inscription - Dernière réponse le 14 juil. 2009 à 13:33
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+
Lire la suite 

[MS-DOS] script de conversion date »

Suggestions
9 réponses
Réponse
+1
moins plus
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%
Ajouter un commentaire
Réponse
+0
moins plus
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
}
_ç_§:
(.)#(.)
Ajouter un commentaire
Réponse
+0
moins plus
Enfin tu pourrais aussi t'intéresser à ce petit utilitaire DOS : Batchman sur http://short.stop.home.att.net/freesoft/batch2.htm#batchman
et à Fdate http://short.stop.home.att.net/freesoft/batch1.htm#date et http://www.ferg.org/fdate/index.html
_ç_§:
(.)#(.)
Ajouter un commentaire
Réponse
+0
moins plus
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+
Ajouter un commentaire
Réponse
+0
moins plus
Oui, tu as bien fait. Ah, le pascal, c'est beau !
_ç_§:
(.)#(.)
Ajouter un commentaire
Réponse
+0
moins plus
merci, ca ma bien aider ton premier script
Ajouter un commentaire
Réponse
+0
moins plus
merci beaucoup.
Ajouter un commentaire
Réponse
-2
moins plus
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
alf - 14 juil. 2009 à 13:33
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
Ajouter un commentaire
Ce document intitulé « [MS-DOS] script de conversion date » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?