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

Ein Datum aus einer Txt filtern mit for-schleife

Frage Entwicklung Batch & Shell

(Level 1)

27.09.2006, aktualisiert 28.09.2006, 3758 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
Verschachtelte For Schleife für Batch Neuling (3)

Frage von yperiu zum Thema Batch & Shell ...

Batch & Shell
gelöst Verlinkung erstellen Batch Datei mit for Schleife (2)

Frage von rusdav zum Thema Batch & Shell ...

Batch & Shell
gelöst Verschachtelte FOR-Schleife mit einem Argument (3)

Frage von mp-home zum Thema Batch & Shell ...

Batch & Shell
Zwei Ergänzungen in einer For Schleife

Frage von charmeur zum Thema Batch & Shell ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(2)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (19)

Frage von SarekHL zum Thema LAN, WAN, Wireless ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Cloud-Dienste
gelöst Bitcoins minen über Nacht? (16)

Frage von 1410640014 zum Thema Cloud-Dienste ...