web-dev-qa-db-fra.com

Afficher le texte du fichier .txt dans le fichier de commandes

Je suis en train d'écrire un gros fichier batch.

Il enregistre la date dans un fichier log.txt:

@echo off
echo %date%, %time% >> log.txt
echo Current date/time is %date%, %time%.
@pause
exit

Il peut l’enregistrer plusieurs fois, sur plusieurs lignes. Maintenant, ce que je veux faire, c’est que le fichier de commandes affiche la dernière date/heure enregistrée à partir du fichier log.txt.

Comment?

14
Deniz Zoeteman

hmm .. vient de trouver la réponse. c'est plus facile alors j'ai pensé. il a juste besoin de plus de choses:

@echo off
if not exist log.txt GOTO :write
echo Date/Time last login:
type log.txt
del log.txt
:write
echo %date%, %time%. >> log.txt
@pause
exit

Donc, il lit d'abord le fichier log.txt et le supprime. Après cela, il vient d'obtenir un nouveau fichier (log.txt) avec la date et l'heure!

J'espère que cela aide d'autres personnes!

(Le seul problème est que la première fois, cela ne fonctionne pas, mais il suffit d'entrer une valeur aléatoire dans log.txt.)

5
Deniz Zoeteman
type log.txt

Mais cela vous donnera tout le fichier. Vous pouvez le changer en:

echo %date%, %time% >> log.txt
echo %date%, %time% > log_last.txt
...
type log_last.txt

pour n'obtenir que le dernier.

26
viraptor

Utilisez le fichier tail.exe du Kit de ressources Windows 2003

3
SqlACID

Un format d'horodatage pratique:

%date:~3,2%/%date:~0,2%/%date:~6,2%-%time:~0,8%
1
Cyril

Ok, je me demande quand est l'utilisation mais voici deux snipets que vous pourriez utiliser: 

lastlog.cmd  

@echo off
for /f "delims=" %%l in (log.txt) do set TimeStamp=%%l
echo %TimeStamp%

Modifiez la ligne "echo ..", mais la dernière heure de journalisation est comprise entre% TimeStamp% . Pas de fichiers temporaires utilisés, pas d'encombrement et réutilisable comme dans une variable.

Par contre, si vous avez besoin de savoir cela DANS VOTRE code, et non dans un autre lot, modifiez votre enregistrement pour: 

set TimeStamp=%date%, %time%
echo %TimeStamp% >> log.txt

de sorte que la variable% TimeStamp% soit utilisable ultérieurement lorsque vous en aurez besoin.

1
Jay

Essayez ceci: utilisez Find pour parcourir toutes les lignes avec "Date/heure actuelle" et écrivez chaque ligne dans le même fichier:

for /f "usebackq delims==" %i in (`find "Current date" log.txt`) do (echo %i > log-time.txt)
type log-time.txt

Définissez delims = sur un caractère non pertinent dans les lignes de date/heure. Utilisez %% i dans les fichiers de commandes.

Explication ( update ):

Find extrait toutes les lignes de log.txt contenant la chaîne de recherche.

Pour/f parcourt chaque ligne générée par la commande (...).

Comme echo> log-time.txt (single>!) Remplace log-time.txt à chaque exécution, seule la dernière ligne correspondante reste dans log-time.txt

1
devio

Il suffit de régler l’heure et la date sur des variables si ce sera quelque chose qui sera dans une boucle puis

:top
set T=%time%
set D=%Date%

echo %T%>>log.txt
echo %d%>>log.txt
echo time:%T%
echo date:%D%
pause
goto top

Je suggère de le rendre agréable et propre en mettant:

@echo off

devant chaque chose, il se débarrasse des ordures C:/users/exemple/...

et mettre

cls

après le :top pour effacer l'écran avant d'ajouter les nouvelles date et heure à l'affichage

1
graml

Voici une version qui n'échoue pas si log.txt est manquant:


@echo off
  if not exist log.txt goto firstlogin
  echo Date/Time last login:
  type log.txt
  goto end

:firstlogin
  echo No last login found.

:end
  echo %date%, %time%. > log.txt
  pause
1
Anders Sandvig

Voici un bon code de date et d'heure:

@echo off
if %date:~4,2%==01 set month=January
if %date:~4,2%==02 set month=February
if %date:~4,2%==03 set month=March
if %date:~4,2%==04 set month=April
if %date:~4,2%==05 set month=May
if %date:~4,2%==06 set month=June
if %date:~4,2%==07 set month=July
if %date:~4,2%==08 set month=August
if %date:~4,2%==09 set month=September
if %date:~4,2%==10 set month=October
if %date:~4,2%==11 set month=November
if %date:~4,2%==12 set month=December

if %date:~0,3%==Mon set day=Monday
if %date:~0,3%==Tue set day=Tuesday
if %date:~0,3%==Wed set day=Wednesday
if %date:~0,3%==Thu set day=Thursday
if %date:~0,3%==Fri set day=Friday
if %date:~0,3%==Sat set day=Saturday
if %date:~0,3%==Sun set day=Sunday
echo.
echo The Date is %day%, %month% %date:~7,2%, %date:~10,4% the current time is: %time:~0,5%
pause

Sorties: La date est le dimanche 27 septembre 2009 l'heure actuelle est: 3:07

0
BnryZombie
@echo off
set log=%time% %date%
echo %log%

C’est un lot pour enregistrer la date et l’heure en tant que variable temporaire et les afficher . Rapidement, je n’ai pas le temps d’écrire un script pour ouvrir un texte, peut-être plus tard.

0
Daniel Isaksen