Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo liebes Forum,

ich hänge hier vor einem riesigen Batch Problem!!!

Ich hab folgende aufgabe bekommen:

Ich soll von einer Textdatei den Dateinamen auslesen der Dateiname ist wie folgt aufgebaut: XXX_XX_20100530.txt

aus diesem Dateinamen soll ich nun das Datum "20100530" auslesen.

Wenn das Datum gleich dem aktuellen ist bzw. zwischen heute +2 Tage (bsp: "20100601") liegt soll die Datei in ein anderes Verzeichnis verschoben werden! Ansonsten soll nichts mit ihr passieren!

Ich hoffe mir kann jemand weiterhelfen meine ersten Versuche sehen so aus funktionieren aber teilweise nicht wirklich!!!

@echo off

for %x in (*.txt) do @for /f "tokens=1,2,3,* Delims=_." %i in ("%x") do echo "%k"

pause

@echo off for %x in (%date%) do @for /f "tokens=1,2,3,* Delims=." %i in ("%x") do echo "%k%j%i"

do For %x in (%date%) do for /F "tokens=1,2,3,* Delims=_" %i in ("%x")

@echo off

For /F %%i in ('dir /B *.txt') do set Datei=%%i do @for /f "tokens=1,2,3,* Delims=_." %i in ("%Datei") do @echo %k%

pause

Ich hoffe mir kann jemand weiterhelfen!!!

Geschrieben

also ich glaube der unterste ist am nächsten dran. (getestet)

echo off

setlocal ENABLEDELAYEDEXPANSION

cls

For /F %%i in ('dir /B ^*.txt') do (

	for /f "Delims=_ tokens=1-3" %%x in ("%%i") do (

		set str=%%z

		set str=!str:~0,-4!

		echo !str!	

	)

)

endlocal

pause

Damit gibt er zumindest den interessanten Teil deiner Datein aus. Kommst mit dem Rest selbst klar?

Begründung für die !!

Geschrieben

Hallo User\Root,

das Ding funtkioniert ja soweit und gibt dann 2010 aus!

Ich benötige ja aber das komplette Datum sprich aus:

XXX_XX_20100519.txt

und es soll dann 20100519 in die Variable speichern!

Könntest du zusätzlich deinen Code mit Kommentaren versehen da ich absoluter Neuling auf dem Gebiet bin und dies so schnell wie möglich lernen will!

Geschrieben (bearbeitet)

Also gut:

echo off rem Echos auschalten

setlocal ENABLEDELAYEDEXPANSION rem zum aktivieren der !-Variablen in den for-Schleifen

cls rem blanker bildschirm

For /F %%i in ('dir /B *.txt') do ( rem die Dateinamen vom Befehl dir /b in die variable %%i übergeben

	for /f "Delims=_ tokens=1-3" %%x in ("%%i") do ( rem die values der Variablen %%i mit hilfe der "_" als array aufteilen

		set str=%%z rem die dritte spalte des Array an die Variable str übergeben (bei mir z.B. 20100530.txt)

		set str=!str:~0,-4! rem den Value des variablen str um 4 Zeichen von rechts kürzen (also das .txt weg)

		echo !str! rem die variable str vom letzten Stand ausgeben

	) rem innere for schleife beenden

) rem äußere for-schleife schliessen

endlocal rem gehört zu Zeile 2

pause rem warten auf Tasteneingabe

Hast du den Quelltext mit copy paste übertragen? Ich hab mal ein paar Testdateien angelegt und der liefert bei mir immer die 20100530 als echo aus?!?post-31269-14430448711896_thumb.jpg

Bearbeitet von User\Root
Geschrieben

Ja hab ich vielen vielen Dank hast mir schon mal sehr weiter geholfen!

Ich denke spätestens am Montag werde ich mit den nächsten Fragen kommen!

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...