kerstin1
Goto Top

Per Batch-Schleife aus Liste von Verzeichnissen in das zuletzt erstellte wechseln

Hallo Team,

ich suche Unterstützung bei folgender Aufgabe:

Basierend auf dem Rootordner Bsp: c:\temp\2020\10\CTL_DAT_MASTER soll aus einer Liste von Verzeichnissen in das zuletzt erstelle gewechselt werden und von dort
weitere Skripte aussgeführt werden.
Problem ist Loop über Verzeichnisse und speichern des Namens des zuletzt erstellten Verzeichnisses in Variable und dann per cd wechseln

Einziges Kriterium ist das der Name lieferung am Anfang steht.


Ich nutze nur für diese speziellen Aufgabenstellungen Batch habe keine richtige Lösung im Web gefunden und bitte um Unterstützung.


::Anpassen Verz. Regelupdate CTL_DAT für Fachtest momentan manuell in das aktuelleste Lieferverz. wechseln                                                                         
cd "c:\temp\2020\10\CTL_DAT_MASTER"  
::manuell           
set "rootfolder=c:\temp\CTL_DAT_MASTER"  
set "Neue="  
::set "targetfolder=c:\temp\\%jahr%\Q%quarter%_%jahr%\CTL_DAT_MASTER"  
echo %rootfolder%
pause
::Zeige Ordner an
::delims Trennzeichen angeben
for /f "tokens=* delims=" %%g IN ('dir /B /AD /TC /O-D "%rootfolder%\*"') DO @(  
::for /f "tokens=* delims=" %%g IN ('dir /B /AD /TC /O-D "%rootfolder%\*"') DO set "Neue=%%i"  
::for /f "delims= " %%a in ('%rootfolder%^|findstr /i /l "spsswin.exe"') do echo %%a  
::for /f "tokens=lieferung* "delims= " %%a in ('dir %rootfolder%^|findstr /i /l "test"') do echo %%a  

(
	dir "!rootfolder!\%%g"  
	::cd "!rootfolder!\%%g"  
	echo %Neue%
	pause
	cd %Neue%
)
	echo %Neue%

dir manuell auf Verzeichnisliste

30.09.2020 12:54 12r <DIR> .
30.09.2020 12:53 12r <DIR> ..
30.09.2020 12:56 12r 0 for
28.09.2020 14:11 2r <DIR> lieferung_20200628_140610_Lieferung_gesamt_KV_Neu4
28.09.2020 07:14 7r <DIR> lieferung_20201228_071221_Lieferung_gesamt_KV_Neu3
31.08.2020 10:42 10r <DIR> lieferung_20201431_101444_KV_Gesamt-Versch-Container
25.09.2020 10:34 10r <DIR> lieferung_20201625_101620_Lieferung_gesamt_KV_Neu
28.09.2020 06:42 6r <DIR> lieferung_20203725_133717_Lieferung_gesamt_KV-Neu2
01.09.2020 12:55 12r <DIR> lieferung_20204001_124025_KV_Gesamt-2-Container-DPKT
23.09.2020 07:42 7r <DIR> lieferung_20205623_065621_Lieferung_gesamt_klein_KV
25.08.2020 13:11 1r <DIR> lieferung_20205625_125615_KV_Basis-Regelupdate

Content-Key: 609184

Url: https://administrator.de/contentid/609184

Printed on: April 19, 2024 at 04:04 o'clock

Member: TK1987
Solution TK1987 Oct 01, 2020 updated at 13:06:43 (UTC)
Goto Top
Moin,

du hast doch quasi bereits alles. Die For-Schleife zeigt dir die Verzeichnisse nach Erstellungsdatum sortiert in absteigender Reihenfolge - der 1. Eintrag, den dir die For-Schleife liefert, ist folglich der zuletzt erstellte Ordner.
Du musst also lediglich nach dem ersten Eintrag aus der Schleife rausspringen, damit ältere Verzeichnisse nicht mehr verarbeitet werden.
@echo off

set "rootfolder=c:\temp\CTL_DAT_MASTER"  
for /f "Delims=" %%g in ('dir /B /AD /TC /O-D "%rootfolder%"') do (  
  cd /d "%rootfolder%\%%g"  
  goto :continue
  )

:continue
:: Mache was auch immer du in dem Verzeichnis tun willst

Gruß Thomas