Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Batch Alle .txt Dateien per Batch Script als verschiedene Variablen speichern

Frage Entwicklung Batch & Shell

Mitglied: Motorcross

Motorcross (Level 1) - Jetzt verbinden

22.11.2010 um 13:50 Uhr, 5089 Aufrufe, 5 Kommentare

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
Mitglied: AliceD
22.11.2010 um 14:04 Uhr
versuch es mal mit

"for /f "delims=" %%a in ('D:*.txt') do echo %%a && %%b" etc. jenachdem wie viele Wörter auf einer linie stehen. (Bei D: dann halt den Pfad wo deine txt Dateien liegen

anstatt do echo kannst du dann aber auch set befehle nutzen jenach dem was du mit den variablen machen möchtes
Bitte warten ..
Mitglied: Motorcross
22.11.2010 um 14:18 Uhr
habe ich versucht aber er findet den Pfad nicht.
Also ich erkläre nochmal mein Problem:
Ich bin gerade dabei einen Server zu programmieren, der die Clients überprüft.
Wenn sich ein Client angemeldet hat, erstellt er im Ordner test eine Datei, die so heißt, wie der Computername.
In dieser Datei steht die Uhrzeit drin, wann sich der Client verbindet hat.
Diese wird (wenn der Client noch online ist jede 5 Sekunden durch ihn aktualisiert.
Jetzt möchte ich mir einen Übersichtsscript programmieren, der sich aus jeder Datei die Uhrzeit ansieht, mit der aktuellen vergleicht und wenn sie übereinstimmen, den Namen des Clients anzeigt.(Der befindet sich ja im Namen der .txt Datei).
Hier ein Bsp.:
Die Datei heißt z.B HORST-PC.txt
Drin steht: 14:17
Wie kann man das programmieren?
Gruß Motrocross
Bitte warten ..
Mitglied: bastla
22.11.2010 um 17:06 Uhr
Hallo Motorcross!

Sollte (ungetestet) so zu machen sein:
01.
@echo off & setlocal 
02.
set "Jetzt=%time:~,5%" 
03.
for /f "delims=" %%i in ('findstr /m "%Jetzt%" D:\*.txt') do @echo %%~ni
Grüße
bastla
Bitte warten ..
Mitglied: Biber
22.11.2010 um 18:14 Uhr
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:
01.
... 
02.
:: Eine SachMirWasVor5MinutenWar-VBScript-Zeile temporär ins %Temp%-Verzeichnis schreiben 
03.
echo >%temp%{backslash}nowMinus5Min.vbs d=dateadd("n",-5, now()): Wscript.echo (hour(d) ^&":"^& minute(d) ) 
04.
:: die gibt zurück "17:45", wenn es 17:50h ist 
05.
For /F %%i in ('cScript //NoLogo %temp%{backslash}nowMinus5Min.vbs') do Set minTime=%%i" 
06.
:: jetzt steht der String "17:45" in der Variable %minTime% 
07.
:: Und jetzt erst kommt die eigentliche Arbeitszeile: 
08.
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}
Bitte warten ..
Mitglied: bastla
22.11.2010 um 18:15 Uhr
@Biber
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]
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst Powershell: Variablen aus .txt Dateien heraus ausgeben (5)

Frage von Tobiased zum Thema Batch & Shell ...

Batch & Shell
gelöst Mittels Batch alle .txt Dateien eines Verzeichnises ändern (10)

Frage von mttspeedy zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...