103148
Mar 19, 2014
1613
3
0
Zwei TXT Datei vergleichen und zusammen eine Liste erstellen
Hallo,
ich erstelle zwei Dateien, eine jede Abend mit dem Inhalt
online.txt
HOST PC001 ist online
HOST PC023 ist online
usw
Damit prüfe ich welcher PC Abends noch an ist, das können 10 oder auch 60 sein....
Nun möchte ich wissen, wer zuletzt an diesem Rechner gearbeitet hat, dafür erstelle ich beim Anmelden eine Liste, somit erkenne ich, welcher User an welchem PC sitzt.
mit echo %computername%_%username% >> \\server\pc2user\user.txt im Anmeldescript, läuft sehr gut.
user.txt
PC001_max
PC234_tom
PC403_fred
Jetzt möchte ich die Datei nutzen um die User in der Datei online.txt zu ergänzen, aber sie muss von "unten" gelesen da dort die aktuellen User sind.
Damit kann ich den User direkt ansprechen und ihn bitten den Rechner abends auszuschalten.
ich erstelle zwei Dateien, eine jede Abend mit dem Inhalt
online.txt
HOST PC001 ist online
HOST PC023 ist online
usw
Damit prüfe ich welcher PC Abends noch an ist, das können 10 oder auch 60 sein....
Nun möchte ich wissen, wer zuletzt an diesem Rechner gearbeitet hat, dafür erstelle ich beim Anmelden eine Liste, somit erkenne ich, welcher User an welchem PC sitzt.
mit echo %computername%_%username% >> \\server\pc2user\user.txt im Anmeldescript, läuft sehr gut.
user.txt
PC001_max
PC234_tom
PC403_fred
Jetzt möchte ich die Datei nutzen um die User in der Datei online.txt zu ergänzen, aber sie muss von "unten" gelesen da dort die aktuellen User sind.
Damit kann ich den User direkt ansprechen und ihn bitten den Rechner abends auszuschalten.
Please also mark the comments that contributed to the solution of the article
Content-Key: 233081
Url: https://administrator.de/contentid/233081
Printed on: April 25, 2024 at 17:04 o'clock
3 Comments
Latest comment
Hallo angebissener-apfel!
Das Ergänzen der "online.txt" (so schön finde ich deren Format nicht ) würde ich durch das Erstellen einer neuen Liste ("D:\usersonline.txt") ersetzen und das dann so versuchen:
Falls Dein
Grüße
bastla
Das Ergänzen der "online.txt" (so schön finde ich deren Format nicht ) würde ich durch das Erstellen einer neuen Liste ("D:\usersonline.txt") ersetzen und das dann so versuchen:
@echo off & setlocal
set "onl=D:\online.txt"
set "usr=D:\user.txt"
set "lst=D:\usersonline.txt"
del "%lst%" 2>nul
for /f "usebackq tokens=2" %%o in ("%onl%") do (
for /f "tokens=2 delims=_" %%u in ('findstr /ib "%%o_" "%usr%"') do >>"%lst%" echo %%o:%%u
)
type "%lst%" 2>nul
pause
Falls Dein
muss von "unten" gelesen
bedeutet, dass es mehrere Einträge für zB "PC001" geben kann und der letzte davon verwendet werden soll, dann eher so:@echo off & setlocal
set "onl=online.txt"
set "usr=user.txt"
set "lst=useronline.txt"
del "%lst%" 2>nul
for /f "usebackq tokens=2" %%o in ("%onl%") do (
set "name="
for /f "tokens=2 delims=_" %%u in ('findstr /ib "%%o_" "%usr%"') do set "name=%%u"
setlocal enabledelayedexpansion
if defined name >>"%lst%" echo %%o_!name!
endlocal
)
type "%lst%" 2>nul
pause
bastla