Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
682 connectés 

  FORUM HardWare.fr
  Programmation

  [DOS] Comment concaténer des chaines dans un .BAT

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[DOS] Comment concaténer des chaines dans un .BAT

n°111481
fdl
Posté le 13-03-2002 à 10:49:25  profilanswer
 

Salut,
 
voilà je voudrais par exemple afficher la date et l'heure sur une meme ligne sur un fichier.
 
Est-ce que quelqu'un sait comment proceder?

mood
Publicité
Posté le 13-03-2002 à 10:49:25  profilanswer
 

n°111514
JPA
Posté le 13-03-2002 à 12:19:34  profilanswer
 

tiré de : http://www.robvanderwoude.com/index.html
 
The PROMPT command has some usefull options, like $D and $T, that allow us to store the week day, current date and current time in environment variables, independent of the operating system's language!
The resulting environment variable is language dependent, though. So I added a routine to remove forward slashes (or any other FOR delimiter) from the DATE variable (which is then stored in the DATE2 variable), allowing the variable to be used in file names.
This technique to remove or replace forward slashes works in all DOS versions up to and including MS-DOS 6.22, PC-DOS 7 and OS/2 Warp 4's DOS box. It will not work in MS-DOS 7.*, which means the %DATE2% variable is useless in MS-DOS 7.*. However, the %DATE% and %TIME% variables are valid in all DOS versions, including MS-DOS 7.*.
 
 
@ECHO OFF
:: DateTime.bat
:: Set environment variables with currend Date, Time and DayOfWeek
 
:: Recursion
IF NOT "%3"=="" GOTO SecondTime
:: Create temporary batch file
> TEMPDTT1.BAT ECHO @PROMPT %0 $D $T
:: Do _N_O_T_ replace "COMMAND /C" with CALL in the next line
> TEMPDTT2.BAT COMMAND /C TEMPDTT1.BAT
TEMPDTT2
 
:SecondTime
DEL TEMPDTT?.BAT
SET DOW=%1
SET DATE=%2
SET TIME=%3
 
:: Remove forward slashes from DATE variable and store result in DATE2
IF EXIST DATE2.BAT DEL DATE2.BAT
SET DATE2=
:: Parse DATE variable and create temporary batch
:: file to recreate DATE without forward slashes
>> DATE2.BAT FOR %%A IN (/%DATE%) DO ECHO SET DATE2=%%DATE2%%%%A
CALL DATE2.BAT
DEL  DATE2.BAT
 
je n'ai pas testé, donc probablement à adapter en fonction du langage de l'OS.
 
Ensuite quand la date et l'heure sont stockées dans des variable, il te suffira de les afficher en faisant :
echo %date% %heure%
(dans le batch, remplacer % par %%)
 
A+

n°111712
fdl
Posté le 13-03-2002 à 18:28:33  profilanswer
 

Merci, ça a pas l'air simple mais je vais essayer.
 
A+

n°111902
fdl
Posté le 14-03-2002 à 10:28:34  profilanswer
 

J'ai pas réussi à le faire marcher.
 
il faut que je puisse afficher un message du genre :
"nous sommes le 14.03.2002 et il est 10.30"
 
Y a pas un truc simple pour y arriver?

n°111905
kayasax
Posté le 14-03-2002 à 10:31:16  profilanswer
 

je sais pas si ca repond bien a ta question mais sous dos il suffit de taper :
echo %DATE%--%TIME%
ca affiche :
jeu. 14/03/2002--10:31:17,39


---------------
All we need is a soul revolution
n°111913
fdl
Posté le 14-03-2002 à 10:36:37  profilanswer
 

Ben en fait, je suis sous NT4.
Et echo %DATE% n'affiche pas la date malheureusement mais seulement %DATE%.
 
Merci quand même.

n°111917
kayasax
Posté le 14-03-2002 à 10:39:02  profilanswer
 

sous win2k en ligne de commande ca marche nickel
comme le disais JPA si tu marque cette commande ds un .bat il faut doubler les % :
echo %%DATE%%-%%TIME%%
 

fdl a écrit a écrit :

Ben en fait, je suis sous NT4.
Et echo %DATE% n'affiche pas la date malheureusement mais seulement %DATE%.
 
Merci quand même.  




---------------
All we need is a soul revolution
n°111931
fdl
Posté le 14-03-2002 à 10:52:31  profilanswer
 

je viens d'essayer et ça affiche chez moi :
%DATE--%TIME% losrque je mets %% au lieu de %

n°111934
kayasax
Posté le 14-03-2002 à 10:56:00  profilanswer
 

sous nt4 cette commande a l'air de passer :
 
date /t  
time /t
 
donc pour le mettre dans un fichier ca doit etre un truc du style
 
date /t > fic.txt
time /t >>fic.txt

 

[jfdsdjhfuetppo]--Message édité par kayasax--[/jfdsdjhfuetppo]

n°111936
fdl
Posté le 14-03-2002 à 11:01:23  profilanswer
 

oui tu as raison, mais comment faire pour les afficher sur une même ligne?

mood
Publicité
Posté le 14-03-2002 à 11:01:23  profilanswer
 

n°111984
kayasax
Posté le 14-03-2002 à 12:10:22  profilanswer
 

arghhh!!!
j'y suis presque mais j'arrive pas a prendre le 2eme champs du jour :
 
date /t>date.tmp
time /t>time.tmp
for /f %%a in (date.tmp) do for /f %%b in (time.tmp) do @echo %%a %%b >date.txt
pause
 
 
faut utiliser tokens a priori mais j'arrive pas a touver la bonne syntaxe :cry:

n°111990
JPA
Posté le 14-03-2002 à 12:21:04  profilanswer
 

il y a plus simple :
set dattime=%date% %time%
dans le fichier bat sans %% on se demande pourquoi...
echo dattime
ou echo %date% %time%
 
L'utilisation du %% ou % est toujours aussi incompréhensible sous DOS !!!
A+

n°111993
kayasax
Posté le 14-03-2002 à 12:28:07  profilanswer
 

A y est je l'AI !!!
 
 
time /t>time.tmp
for /f "usebackq delims==" %%a in (`date /t`) do for /f %%b in (time.tmp) do @echo %%a  
 
%%b >date.txt
pause

 

[jfdsdjhfuetppo]--Message édité par kayasax--[/jfdsdjhfuetppo]

n°111994
kayasax
Posté le 14-03-2002 à 12:28:45  profilanswer
 

JPA %date% et %time% n'existent pas sous winnt 4

n°112201
fdl
Posté le 14-03-2002 à 17:49:24  profilanswer
 

kayasax, j'ai esasyé ton code (copier-coller, tout simplement), et il me retourne un erreur :
usebackq delims==" etait inattendu
 
et le fichier date.txt est vide.

n°112221
kayasax
Posté le 14-03-2002 à 18:18:01  profilanswer
 

supprime les sauts de ligne du copier coller si t'en as il faut que  
for /f "usebackq delims==" %%a in (`date /t`) do for /f %%b in (time.tmp) do @echo %%a %%b >date.txt  
soit sur la meme ligne dans ton batch

 

[jfdsdjhfuetppo]--Message édité par kayasax--[/jfdsdjhfuetppo]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [DOS] Comment concaténer des chaines dans un .BAT

 

Sujets relatifs
Non Nom sous DOS ( ~1 )[C++ (builder)] Chaînes de caractères en Unicode
VBscript & command DOS = Pepin....[C++ Builder] Les != types de chaînes (string, AnsiString, char, etc..
Lire de midis en c++ ss Dos[CHERCHE] Dbase 4 ou 5 pour DOS
Kel Soft Utiliser Pour Coder En "C", Sous Win2k (Mode Dos)[VB6] Capturer la sortie d'un programme DOS
modifier un prog DOS pour le passer en php+access[DOS / batch] Quelqu'un sait où on peut trouver de la doc ?
Plus de sujets relatifs à : [DOS] Comment concaténer des chaines dans un .BAT


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR