Top-Themen

Aktuelle Themen (A bis Z)

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
GELÖST

Ein Datum aus einer Txt filtern mit for-schleife

Frage Entwicklung Batch & Shell

(Level 1)

27.09.2006, aktualisiert 28.09.2006, 3766 Aufrufe, 3 Kommentare

Hallo alle Zusammen, ich bin der Neue!

Ich finde euer Forum echt Klasse und es ist mir hier schon oft geholfen worden nur durch lesen,
allerdings habe ich jetzt ein kleines Problem, bzw komme ich einfach nicht auf die Lösung.

und zwar möchte ich gerne mit Batch ein Datum einer Datei herausfinden und als Variable setzen

das Einzige was mir als mögliche Lösung eingefallen ist, ist ein kleiner Umweg über eine temp.txt

Beispiel:
und würde ich dann "dir found.rar >> temp.txt" eingeben

in der Temp.txt befindet sich dann das:

Datenträger in Laufwerk C: ist XYZ
Volumeseriennummer: XYZ

Verzeichnis von C:\test

23.09.2006 02:26 181.343 found.rar
1 Datei(en) 181.343 Bytes
0 Verzeichnis(se), 27.410.919.424 Bytes frei

so jetzt könnte ich doch mit einer For-Schleife bestimmt das Datum "herausfiltern" und als Variable setzen,
allerdings komme ich nicht auf die Lösung :/

Ich hoffe es kann mir jemand helfen oder jemand hat eine andere "direkte" Lösung
Vielen Dank im Vorraus

Ucbalu
Mitglied: Biber
27.09.2006 um 19:54 Uhr
Moin Ucbalu,

wenn Du es über den Weg mit einer Zwischendatei machen willst, dann musst Du erst deine Sicht auf die Datei auf die eine für Dich interessante Zeile beschränken.

Dazu bietet sich ein "Find"- oder "FindStr"-Aufruf mit dem Suchbegriff Dateiname (in Deinem Beispiel "found.rar") an.

Das wäre ja dieser Zwischenschritt:
01.
>type temp.txt|find /i "found.rar" 
02.
23.09.2006 02:26 181.343 found.rar 
03.
REM -oder-, gleiches Ergebnis ohne Tempdatei: 
04.
dir found.rar|find /i "found.rar" 
05.
23.09.2006 02:26 181.343 found.rar
Diese eine Zeile wiederum liest Du mit einer FOR /F...IN..DO-Anweisung ein.
Und speicherst die Variable in %myFiledate% oder so etwas.
01.
>REM Demo am CMD-Prompt: 
02.
>for /f %i in ('dir found.rar^|find /i "found.rar"') do @set MyFileDate=%i 
03.
23.09.2006
Im Batch entsprechend ein %-Zeichen mehr bei der Zählvariablen %i:
for /f %%i in ('dir found.rar^|find /i "found.rar"') do set MyFiledate=%%i

Gruß
Biber
Bitte warten ..
Mitglied: Biber
27.09.2006 um 22:50 Uhr
Geht auch.
Demo am CMD-Prompt:
01.
>set mydate=%date% 
02.
>set mydate 
03.
mydate=27.09.2006 
04.
>for /f "tokens=1-3 delims=." %i in ("%mydate%") do set "myvar1=%i" & set "myvar2=%j" & set "myvar3=%k" 
05.
set "myvar1=27"   & set "myvar2=09"   & set "myvar3=2006" 
06.
>set my 
07.
mydate=27.09.2006 
08.
myvar1=27 
09.
myvar2=09 
10.
myvar3=2006
[Alle Befehle mit voranstehendem ">" kannst Du so an Deinem Prompt eingeben und es Schritt für Schritt nachturnen]

Auf Dein Beispiel oben angewendet wäre es dann im Batch:
01.
 .... [...in den Tiefen deiner Batchdatei....] 
02.
for /f "tokens=1-3 delims=." %%i in ('dir found.rar^|find /i "found.rar"') do set "MyTT=%%i" & set "myMM=%%j" & set "MyYYYY=%%k" 
03.
....
Die ganze FOR /F-Syntax findest Du unter "FOR /?" am CMD-Prompt ganz brauchbar erklärt.
Im Bereich Batch & Shell findest Du auch ein kleines Tutorial zum Thema "Umgang mit Datums- und Zeitvariablen im Batch".

Gruß Biber
Bitte warten ..
Mitglied: Biber
28.09.2006 um 21:12 Uhr
Klar, Ucbalu,

Du kannst keine, einen ohne mehrere delims angeben.
In Deinem ersten Beispiel auch noch ein zusätzliches Leerzeichen.
Das ist mir entweder beim CopyPaste nach HTML verloren gegangen oder ich habe es vergessen...
01.
>for /f "tokens=1-3 delims=. " %i in ("29.09.2006 21:05") do set "myvar1=%i" & set "myvar2=%j" & set "myvar3=%k" 
02.
 
03.
>set "myvar1=29"   & set "myvar2=09"   & set "myvar3=2006"
Oder, wenn das Datum mal mit "-", mal mit "/", mal mit "." daherkommt, eben "delims=-/."

Nachzulesen ist das
- bei M$ z.B. in der Hilfe zum FOR-Befehl,
- in vielen guten Tankstellen-PC-Zeitschriften oder
- hier im Forum im Bereich "Batch & Shell" in dem Tutorial Workshop Batch for Runaways Part III: Datums-und Zeitvariablen im Batch.
--> auch speziell auf die Datumswert-Aufdröselung eingehend.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
In For-Schleife nach Dateiinhalt Filtern
Frage von AndroxinBatch & Shell5 Kommentare

Guten Tag, ich habe ein Shellscript, welches Dateien, die max. 30 Tage alt sind, aus einem definierten Verzeichnis ausliest, ...

Batch & Shell
Einen String in einer TXT finden, nur einen Teil als Variable setzen, FOR Schleife in FOR Schleife
gelöst Frage von KriegstreiberBatch & Shell3 Kommentare

Guten Abend alle miteinander, nunja wenn ich hier die Sufu nutze findet man etliches zu dem Thema, aber ich ...

Batch & Shell
Batch Schleife als FOR-SCHLEIFE
gelöst Frage von mp2711Batch & Shell2 Kommentare

Mit den FOR-Schleifen habe ich mich leider bislang zu selten auseinander gesetzt, aber da ich sonst gerade nicht weiter ...

Batch & Shell
For f Skip Schleife soll txt files kopieren
gelöst Frage von BiffBaffBatch & Shell2 Kommentare

Hallo zusammen, ich habe schon in anderen Foren gelesen, dass die FOR /F Variante keine Wildcards enthaelt. Ich wuerde ...

Neue Wissensbeiträge
Perl

Perl hat heute Geburtstag: 30 Jahre Perl: Lange Gesichter zum Geburtstag

Information von Penny.Cilin vor 5 StundenPerl2 Kommentare

Hallo, auch wenn es wenige wissen und noch weniger Leute es nutzen. Perl hat heute Geburtstag. 30 Jahre Perl ...

Sicherheit

Blackberry stirbt - Keine Updates für Priv mehr

Tipp von certifiedit.net vor 6 StundenSicherheit

Blackberry wird zu einer 08/15 Firma und geht wohl mehr und mehr den Weg, den HTC schon ging. Von ...

Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 1010 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 2 TagenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell22 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Netzwerkgrundlagen
Belibiges Teilnetz einer Subnetzmaske rausfinden?
gelöst Frage von CenuzeNetzwerkgrundlagen17 Kommentare

Wundervollen Gutentag, mittlerweile kann ich Subnetting so einigermaßen, aber ein Problem habe ich noch. Netzwerkadresse und Boradcast errechnen ist ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless12 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Windows Server
Logging von "gesendeten Nachrichten" auf Terminalservern
gelöst Frage von Z3R0C0MM4N0THiN6Windows Server10 Kommentare

Hallo zusammen, kann mir jemand auf kurzem Wege sagen ob 1) die per Task-Manager (oder damals tsadmin) an Benutzer ...