Batch Schleife in Schleife, was mache ich falsch?
Moin,
ich versuche über einen bekannten Dateinamen von zwei Dateien den jeweiligen Überordner mit Pfad als Variable zu speichern.
Dazu fiel mir nur ein die gesuchte Datei temporär umzubenennen, einen Ordner mit dem Namen zu erstellen und in diesen mit CD zu wechseln.
Dann kann ich mit cd.. eine Ordnerebene zurückspringen und habe den gesuchten Pfad.
Nun muss ich noch den Pfad als Variable speichern.
%cd% gibt leider nicht den aktuellen Pfad sondern den Pfad vor begin der ersten Schleife aus.
Meine Alternatividee war:
for /f %%i in ('cd') do Set drv="%%i"
jedoch bleibt die Variable "drv" leer...
Hat jemand eine Idee?
@echo off
REM suche nach Treiber .inf Dateien mit "oem" im Namen um den richtigen Pfad zu finden.
REM dabei steht %%a für den Pfad zur .inf Datei.
for /f "delims=" %%a in ('dir "*oem*" /a-d /b /s ^| findstr.exe /l /i /c:.inf') do (
REM Trick um die richtigen Ordner als Pfad zu speichern:
REM zunächst umbenennen der .inf Datei in temp.tmp (später zurück benannt.)
ren "%%a" temp.tmp
REM Erstellen eines Ordners mit dem Namen der .Inf Datei.
mkdir "%%a"
REM welchseln in diesen Ordner und einen Schritt zurück gehen in den Überordner mit cd..
cd "%%a"
cd ..
REM den Pfad des überordners als Variable "drv" speichern.
for /f %%i in ('cd') do Set drv="%%i"
echo variable cd ist %cd%
echo variable drv ist %drv%
REM Hier ist der Fehler, dies klappt nicht.
pause
cls
REM löschen des Ordners mit dem Namen der .inf Datei.
rd "%%a"
REM umbenennen rückgängig machen.
ren temp.tmp "%%a"