Batch Alle .txt Dateien per Batch Script als verschiedene Variablen speichern
Hallo Administratoren,
ich bin gerade dabei einen Batch Script zu schreiben, leider komme ich nicht weiter.
Dieser Batch Script soll den Inhalt aller .txt Dateien im Ordner als verschiedene Variablen speichern.
Leider weiß man nicht den Namen der .txt Dateien und man weiß auch nicht wie viele es sind.
Es sollte dann so funktionieren: z.B die Datei test.txt (normal weiß man den Namen ja nicht) unter einer Variablen gespeichert wird
Ich brauche diesen Script für einen Server, der sieht wie viele Clients online sind.
Die .txt Dateien tragen den Namen der Clients.
Über Hilfe würde ich mich freuen!
Gruß Motorcross
ich bin gerade dabei einen Batch Script zu schreiben, leider komme ich nicht weiter.
Dieser Batch Script soll den Inhalt aller .txt Dateien im Ordner als verschiedene Variablen speichern.
Leider weiß man nicht den Namen der .txt Dateien und man weiß auch nicht wie viele es sind.
Es sollte dann so funktionieren: z.B die Datei test.txt (normal weiß man den Namen ja nicht) unter einer Variablen gespeichert wird
Ich brauche diesen Script für einen Server, der sieht wie viele Clients online sind.
Die .txt Dateien tragen den Namen der Clients.
Über Hilfe würde ich mich freuen!
Gruß Motorcross
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 155535
Url: https://administrator.de/contentid/155535
Ausgedruckt am: 25.11.2024 um 11:11 Uhr
5 Kommentare
Neuester Kommentar
Moin Motorcross, moin bastla,
Würde ich in diesem Fall sowohl anders angehen als von Motorcross geplant wie auch anders als von bastla skizziert.
@Motorcross:
Was interessiert dich, was die Clients für eine Uhrzeit haben? Wenn einer deiner Clients aus Mexiko oder Hawaii zugeschaltet ist, dann ist es bei ihm Stunden früher oder später als bei dir.
@bastla
Aber auch wenn alle Clients in Leverkusen-Mitte (bzw. in derselben Zeitzone) stünden - die funken doch nur alle 5 Minute ihren Lebe-noch-Status.
Also würdest du mit dem findstr /m "%Jetzt%" auch nur die erwischen, die gerade eben "Beim nächsten Ton des Zeitzeichens ist es JETZT" geschrieben haben.
Also, hülft ja nix... ich muss a) alle vom heutigen Tach erwischen und b) will ich davon nur die sehen von jetzt() im Sinne von [hh:mm] und jetzt()-5minuten [hh.mm]
Skizze:
Ist weder schnell noch ästhetisch, aber sollte fliegen.
[Edit] Sobald die Backslashes auch wieder angezeigt werden! Wassn das für ein Montachsbullshit??!?[/Edit]
Grüße
Biber
[Edit II @bastla]
Hast ja recht -- jetzt hab ich mir wieder eine Montachs-Doppelpackung geholt...
Hätte ich einfach "Sekunden" gelesen wo auch "Sekunden" standen...*grmpf*
Dann hätte ich das ~*%@@§§-neue Feature mit Knick-mir-die-BackSlashes-in-Nordrichtung gar nicht bemerkt.
Würde ich in diesem Fall sowohl anders angehen als von Motorcross geplant wie auch anders als von bastla skizziert.
@Motorcross:
Was interessiert dich, was die Clients für eine Uhrzeit haben? Wenn einer deiner Clients aus Mexiko oder Hawaii zugeschaltet ist, dann ist es bei ihm Stunden früher oder später als bei dir.
@bastla
Aber auch wenn alle Clients in Leverkusen-Mitte (bzw. in derselben Zeitzone) stünden - die funken doch nur alle 5 Minute ihren Lebe-noch-Status.
Also würdest du mit dem findstr /m "%Jetzt%" auch nur die erwischen, die gerade eben "Beim nächsten Ton des Zeitzeichens ist es JETZT" geschrieben haben.
Also, hülft ja nix... ich muss a) alle vom heutigen Tach erwischen und b) will ich davon nur die sehen von jetzt() im Sinne von [hh:mm] und jetzt()-5minuten [hh.mm]
Skizze:
...
:: Eine SachMirWasVor5MinutenWar-VBScript-Zeile temporär ins %Temp%-Verzeichnis schreiben
echo >%temp%{backslash}nowMinus5Min.vbs d=dateadd("n",-5, now()): Wscript.echo (hour(d) ^&":"^& minute(d) )
:: die gibt zurück "17:45", wenn es 17:50h ist
For /F %%i in ('cScript //NoLogo %temp%{backslash}nowMinus5Min.vbs') do Set minTime=%%i"
:: jetzt steht der String "17:45" in der Variable %minTime%
:: Und jetzt erst kommt die eigentliche Arbeitszeile:
FOR %%i in (' X:{backslash}WoDieClientSchreiben{backslash}*.txt') do @echo %%~ti|findstr "%date%" >nul && if "%%~ti" GTR "%date% %minTime%" @echo %%~ni %%~ti
- so werden alle Client-Minitextdateien abgegriffen.
- und zwar wie mit impliziten "DIR /Tw" == letzter Schreibzugriff
- diese Zeit steht [mit Datum] im Format TT:MM.JJJJ hh.mm" in %%~ti == dem Filedatum
- alle mit heutigem Datum holt mit der FindStr %date%
- und alle Größer als 5 Minuten mach ich zu Fuss mit dem "IF GTR ...%minTime%"
Ist weder schnell noch ästhetisch, aber sollte fliegen.
[Edit] Sobald die Backslashes auch wieder angezeigt werden! Wassn das für ein Montachsbullshit??!?[/Edit]
Grüße
Biber
[Edit II @bastla]
Hast ja recht -- jetzt hab ich mir wieder eine Montachs-Doppelpackung geholt...
Hätte ich einfach "Sekunden" gelesen wo auch "Sekunden" standen...*grmpf*
Dann hätte ich das ~*%@@§§-neue Feature mit Knick-mir-die-BackSlashes-in-Nordrichtung gar nicht bemerkt.
@Moderator: bitte Kommentar löschen
[Edit II}
@Biber
... ansonsten hätte ich natürlich auch zu VBS gegriffen ...
Grüße
bastla
[Edit] Backslash-Workaraound: verdoppeln (hatten wir jetzt schon ein paar Tage so) [/Edit]
die funken doch nur alle 5 Minute ihren Lebe-noch-Status.
Motocross hatte aber behauptet alle 5 Sekunden ...... ansonsten hätte ich natürlich auch zu VBS gegriffen ...
Grüße
bastla
[Edit] Backslash-Workaraound: verdoppeln (hatten wir jetzt schon ein paar Tage so) [/Edit]