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, 3747 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

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

Ähnliche Inhalte
Batch & Shell
gelöst CMD: icacls in for-Schleife (2)

Frage von Lowrider614 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Problem bei einer For Schleife (2)

Frage von Juergen42 zum Thema Batch & Shell ...

Batch & Shell
gelöst For Schleife kaputt? (5)

Frage von Peter32 zum Thema Batch & Shell ...

Batch & Shell
Batch: Variable Expansion in einer FOR-Schleife (9)

Frage von .Sessl 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 ...