Jump to content

mit Batch Eigenschaften auslesen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

 

da ich im Progi ein Anfänger bin, bräuchte ich Eure Hilfe.

Ich habe folgendes Problem:

 

ich habe eine folgende Ordnerstruktur: Jahr/Monat/Tag bsp.: 2012/Juli/03

und ich habe eine Menge von Bildern. Jetzt möchte ich das Erstelldatum der Bilder auslesen, den Monat rausfiltern und schauen ob der Ordner mit dem Monat vorhanden ist. Wenn ja, dann den Tag rauslesen und die Existenz von diesem Ordner überprüfen. Wenn die beiden Ordner vorhanden sind, dann soll diese Datei in diesen Ordner verschoben werden. Wenn diese Ordner nicht vorhanden sind, dann soll ein Ordner mit dem Monat und anschließend mit dem Tag erstellt werden.

 

Ich würde als erstes Schleifen bauen um alle Bilder durchzugehen. Aber an diesem Punkt komme ich auch leider nicht weiter:

for %%f in ("c:\bilder\*") do echo %%f: %%~tf

 

Über eine Unterstützung würde ich mich sehr freuen!

 

Vielen Dank im Vorraus!

Link zu diesem Kommentar

Vielen Dank für die Anworten

Ich versuche zuerst mit cmd durchzukämpfen. Anbei ein Ausschnitt von zwei Methoden.

Monat habe ich schon rausgekriegt..YUHUU, aber auch nicht ganz. Er gibt mir leider nur einen einzigen Monat aus. Ich vermute dass die For-schleife nur ein einziges Mal aufgerufen wird und dann direkt in die Methoe "ausgabeMonat" geht. Wenn ich aber aus dieser Methode auf die erste verweise "goto BILDEREINLESEN", dann wird er mir nur die Daten für das erste Bild ausgeben, was nicht den Sinn der Sache hat .. hat jemand ein Vorschlag wie ich das umgehen kann?!

 

:BILDEREINLESEN

ECHO Ihre Box ist auf dem Server vorhanden.

echo.

REM Methode zum Auslesen des Erstellmonats

SET SOURCEPATH=E:\Quelle\100Nikon

REM %SOURCEPATH%

 

for %%f in ("E:\Quelle\100Nikon\*") do call :ausgabeMonat "%%~tf"

 

echo.

GOTO end

 

 

:ausgabeMonat

echo _____________

echo Erste Datei: %1

set "Monat=%~1"

echo Monat: %Monat:~3,2%

 

echo.

GOTO end

Link zu diesem Kommentar

Aus der Subroutine muss doch ein Rücksprung erfolgen zur Schleifenbearbeitung , falls ich mich richtig erinnere mit End Of File oder End Of Function(EOF).

 

:BILDEREINLESEN

for %%f in ("D:\Bilder\*") do call :ausgabeMonat "%%~tf"

echo Ende der Programmausführung
pause
exit


:ausgabeMonat
echo ------------------------
echo Datei: %1
set "Monat=%~1"
echo Monat: %Monat:~3,2%

echo Ende einer Unterbearbeitung
pause
:EOF

Link zu diesem Kommentar

Vielen Dank leff!

Das funktioniert schon Mal :) aber auch nicht ganz, wenn ich auch alle "pause" rausnehme und eine vom Ende lasse, dann zeigt er mir erst Mal nur einen Eintrag. Damit die nächsten Einträge gezeigt werden, muss ich immer auf Enter klicken, was natürlich umständlich ist. Wieso macht er nach jedem Durchlauf der Schleifen eine Pause, obwohl ich dies rausgenommen habe?

 

:BILDEREINLESEN

 

for %%f in ("E:\Quelle\100Nikon\*") do call :ausgabeMonat "%%~tf"

echo Ende der Programmausführung

goto end

 

 

:ausgabeMonat

echo _____________

echo Datei: %1

set "Monat=%~1"

set Monat=%Monat:~3,2%

echo Monat: %Monat%

:EOF

 

 

:end

ECHO Ende.

Pause

 

 

und noch eine Frage vom wahren Anfänger ;) Wie kann ich den "alten Pfad" den "\" und eine "Variable" zusammensetzen:

 

set Pfad=%alterPfad% + \ + "variable"

Link zu diesem Kommentar

Anbei der funktionierende Code:

 

for %%f in ("%quellpfad%") do call :ausgabeMonat "%%~tf" "%%~dpnxf" -

 

-> mit dem ersten Parameter übergebe ich das Erstelldatum und mit dem zweiten den vollständigen Pfad der Datei mit dem Dateinamen.

 

GOTO :end

 

So wird der Pfad mit dem Back-Slash zusammengesetzt:

set pfadMitMonat=%pathfile%\%Monat%

 

Bei älteren dos versionen gibt es Abweichungen, wie ich leider feststellen musste ...

 

P.S. Übung macht den Meister )))

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

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

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

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

×
×
  • Neu erstellen...