Supprimer une variable dans un fichier texte

Roberto210 -  
BigCoool Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Les utilisateurs de ma société lancent un fichier bat pour annoncer le numéro du traitement qu'ils effectuent déclenchant alors un enregistrement dans un fichier journal.txt.
Dans ce fichier, je peux voir qui traite quoi en temps réel et je souhaite que quand l'utilisateur a fini, il appuie sur une touche et cela supprime la ligne le concernant dans le fichier.

Cependant, lorsque l'utilisateur appuie sur une touche, c'est toute les lignes qui sont supprimées. (type journal.txt | find /v "%username% .....

Ma question : comment faire pour que la variable %username% soit pris en compte pour l'utilisateur unique ?

Merci d'avance pour votre précieuse aide !


Mon code :

echo.
echo ## Traitement 1 ##
echo.
echo.
set date = for /f "tokens=*" %%a in ('date /t')
for /f "tokens=1,2,3 delims=:" %%a in ('time /t') do set heure=%%a
for /f "tokens=1,2,3delims=:" %%a in ('time /t') do set minute=%%b
echo %username% login Traitement 1 le %date% à %heure%:%minute% >>journal.txt
echo == "POUR QUITTER LE TRAITEMENT, APPUYEZ SUR LA TOUCHE ESPACE..."== & pause >nul
for /f "tokens=1,2,3 delims=:" %%a in ('time /t') do set heureout=%%a
for /f "tokens=1,2,3delims=:" %%a in ('time /t') do set minuteout=%%b

type journal.txt | find /v "%username% login Traitement 1">journal.txt
goto end
A voir également:

2 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
je n'ai pas tout saisi du problème, mais essayer de ne pas lire et écrire dans le même fichier
type journal.txt | find /v "%username% login Traitement 1">journal2.txt
0
BigCoool Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjours,
Désoler pour le retard mais j'ai vue que l'affaire n'était pas résolu..
Que voulez vous faire après l’appuie sur espace ?

- supprimer la ligne que l'utilisateur à créer :
@echo off
echo.
echo ## Traitement 1 ##
echo.
echo.
set date = for /f "tokens=*" %%a in ('date /t') 
for /f "tokens=1,2,3 delims=:" %%a in ('time /t') do set heure=%%a
for /f "tokens=1,2,3delims=:" %%a in ('time /t') do set minute=%%b
echo %username% login Traitement 1 le %date% à %heure%:%minute% >>journal.txt
echo    == "POUR QUITTER LE TRAITEMENT, APPUYEZ SUR LA TOUCHE ESPACE..."== & pause >nul
for /f "tokens=1,2,3 delims=:" %%a in ('time /t') do set heureout=%%a
for /f "tokens=1,2,3 delims=:" %%a in ('time /t') do set minuteout=%%a
for /f "tokens=*" %%a in (journal.txt) do (
if not "%%a" EQU "%username% login Traitement 1 le %date% à %heure%:%minute% " echo %%a>>journal2.txt
)
del journal.txt
ren journal2.txt journal.txt



- la remplacer la ligne que l'utilisateur à créer :
@echo off
echo.
echo ## Traitement 1 ##
echo.
echo.
set date = for /f "tokens=*" %%a in ('date /t') 
for /f "tokens=1,2,3 delims=:" %%a in ('time /t') do set heure=%%a
for /f "tokens=1,2,3delims=:" %%a in ('time /t') do set minute=%%b
echo %username% login Traitement 1 le %date% à %heure%:%minute% >>journal.txt
echo    == "POUR QUITTER LE TRAITEMENT, APPUYEZ SUR LA TOUCHE ESPACE..."== & pause >nul
for /f "tokens=1,2,3 delims=:" %%a in ('time /t') do set heureout=%%a
for /f "tokens=1,2,3 delims=:" %%a in ('time /t') do set minuteout=%%b
for /f "tokens=*" %%a in (journal.txt) do (
if not "%%a" EQU "%username% login Traitement 1 le %date% à %heure%:%minute% " (echo %%a>>journal2.txt) else (echo %username% out Traitement 1 à %heureout%:%minuteout%>>journal2.txt)
)
del journal.txt
ren journal2.txt journal.txt



- ajouter une ligne après la ligne que l'utilisateur à créer
@echo off
echo.
echo ## Traitement 1 ##
echo.
echo.
set date = for /f "tokens=*" %%a in ('date /t') 
for /f "tokens=1,2,3 delims=:" %%a in ('time /t') do set heure=%%a
for /f "tokens=1,2,3delims=:" %%a in ('time /t') do set minute=%%b
echo %username% login Traitement 1 le %date% à %heure%:%minute% >>journal.txt
echo    == "POUR QUITTER LE TRAITEMENT, APPUYEZ SUR LA TOUCHE ESPACE..."== & pause >nul
for /f "tokens=1,2,3 delims=:" %%a in ('time /t') do set heureout=%%a
for /f "tokens=1,2,3 delims=:" %%a in ('time /t') do set minuteout=%%b
for /f "tokens=*" %%a in (journal.txt) do (
if not "%%a" EQU "%username% login Traitement 1 le %date% à %heure%:%minute% " (echo %%a>>journal2.txt) else (echo %%a>>journal2.txt & echo %username% out Traitement 1 à %heureout%:%minuteout%>>journal2.txt)
)
del journal.txt
ren journal2.txt journal.txt



-ajouter une ligne à la fin du fichier
@echo off
echo.
echo ## Traitement 1 ##
echo.
echo.
set date = for /f "tokens=*" %%a in ('date /t') 
for /f "tokens=1,2,3 delims=:" %%a in ('time /t') do set heure=%%a
for /f "tokens=1,2,3delims=:" %%a in ('time /t') do set minute=%%b
echo %username% login Traitement 1 le %date% à %heure%:%minute% >>journal.txt
echo    == "POUR QUITTER LE TRAITEMENT, APPUYEZ SUR LA TOUCHE ESPACE..."== & pause >nul
for /f "tokens=1,2,3 delims=:" %%a in ('time /t') do set heureout=%%a
for /f "tokens=1,2,3 delims=:" %%a in ('time /t') do set minuteout=%%b
echo %username% out Traitement 1 à %heureout%:%minuteout%>>journal.txt
0