Supprimer une variable dans un fichier texte

Fermé
Roberto210 - 11 avril 2016 à 18:19
BigCoool Messages postés 3 Date d'inscription samedi 23 juillet 2016 Statut Membre Dernière intervention 13 août 2016 - 23 juil. 2016 à 12:46
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 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
12 avril 2016 à 08:25
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 samedi 23 juillet 2016 Statut Membre Dernière intervention 13 août 2016
Modifié par BigCoool le 23/07/2016 à 12:48
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