Zeilen per batch auslesen und nacheinander bearbeiten
Hallo @all,
ich brauch mal wieder hilfe...
ich möchte aus einer datei einen pfad auslesen und den dann als variable zur weitern nutzung übergeben.
die datei enthält unterschiedliche pfadangaben. siehe QD --->
meine Quelldatei:
zeile1
zeile2
zeile3
path=C:\del\23n8d32.default
zeile6
zeile7
zeile8
path=H:\blub\vfe8ij3n.default
.
.
.
meine abfrage soweit:
@echo off & SETLOCAL enabledelayedexpansion
set "ini=C:\del\prof.ini"
for /f "delims=" %%i in ('findstr /l /N "path=" "%ini%"') do set Zeile=%%i
echo %zeile%
rd "%zeile%/maildir" /S /Q
was ich bekomme ist nur die ausgabe der letzten gefundenen pfadangabe inklusive dem "PATH="
benötigen tue ich aber nur den pfad, nach einander...
wie bekomme ich das am besten hin?
Vielen Dank für eure Hilfe
ich brauch mal wieder hilfe...
ich möchte aus einer datei einen pfad auslesen und den dann als variable zur weitern nutzung übergeben.
die datei enthält unterschiedliche pfadangaben. siehe QD --->
meine Quelldatei:
zeile1
zeile2
zeile3
path=C:\del\23n8d32.default
zeile6
zeile7
zeile8
path=H:\blub\vfe8ij3n.default
.
.
.
meine abfrage soweit:
@echo off & SETLOCAL enabledelayedexpansion
set "ini=C:\del\prof.ini"
for /f "delims=" %%i in ('findstr /l /N "path=" "%ini%"') do set Zeile=%%i
echo %zeile%
rd "%zeile%/maildir" /S /Q
was ich bekomme ist nur die ausgabe der letzten gefundenen pfadangabe inklusive dem "PATH="
benötigen tue ich aber nur den pfad, nach einander...
wie bekomme ich das am besten hin?
Vielen Dank für eure Hilfe
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 143625
Url: https://administrator.de/contentid/143625
Ausgedruckt am: 19.11.2024 um 17:11 Uhr
11 Kommentare
Neuester Kommentar
Hallo connecthor,
Bitte formatiere deinen Code und auch Quelldateien zur besseren Les-/Referenzier-barkeit unbedingt mit den dafür vorgesehenen in der Formatierungshilfe
Ungestestet:
Gruß
LotPings
Bitte formatiere deinen Code und auch Quelldateien zur besseren Les-/Referenzier-barkeit unbedingt mit den dafür vorgesehenen in der Formatierungshilfe
Ungestestet:
@Echo off & SETLOCAL enabledelayedexpansion
set "ini=C:\del\prof.ini"
for /f "tokens=1* delims==" %%i in ('findstr /l /N "path=" "%ini%"') do set MyPath=%%j
echo %MyPath%
Pause
if Exist "%MyPath%\maildir" rd "%MyPath%/maildir" /S /Q
Gruß
LotPings
Hallo connecthor!
Da Du ja den Pfad weiter verarbeiten willst, kannst du das gleich innerhalb der Schleife tun:
Das Entfernen des jeweiligen "maildir"-Ordners wird erst erfolgen, wenn das "
Grüße
bastla
Da Du ja den Pfad weiter verarbeiten willst, kannst du das gleich innerhalb der Schleife tun:
@echo off & setlocal
set "ini=C:\del\prof.ini"
for /f "tokens=1* delims==" %%i in ('findstr /i /b "path=" "%ini%"') do (
echo %%j
echo rd "%%j\maildir" /S /Q 2>nul
)
echo
" nicht mehr vor dem "rd
" steht ...Grüße
bastla
Moin bastla,
er will doch nur die letzte Path Zeile verarbeiten...
Gruß
LotPings
Upps, schon wieder genau andersherum
Ich war zwar schneller, aber dafür bastla richtig
er will doch nur die letzte Path Zeile verarbeiten...
Gruß
LotPings
Upps, schon wieder genau andersherum
Ich war zwar schneller, aber dafür bastla richtig
Hallo connecthor!
Grüße
bastla
vielleicht kann man ja ja noch ne abfrage ala "if NOT EXIST XxXxX\maildir goto weitersuchen"
Was meinst Du damit - es sollte jetzt bereits jede Zeile, die mit "path=" beginnt, gefunden werden - wenn es den Unterordner "maildir" gibt, wird er gelöscht, wenn nicht, dann nicht (und die daraus resultierende Fehlermeldung mit "2>nul
" unterdrückt) ...Grüße
bastla
Hallo connecthor!
bzw
Grüße
bastla
@echo off & setlocal
set "ini=C:\del\prof.ini"
set "Erster="
for /f "tokens=1* delims==" %%i in ('findstr /i /b "path=" "%ini%"') do if not defined Erster set "Erster=%%i"
if not defined Erster (echo Kein Eintrag gefunden! & goto :eof)
echo %Erster%
echo rd "%Erster%\maildir" /S /Q 2>nul
@echo off & setlocal
set "ini=C:\del\prof.ini"
set "Letzter="
for /f "tokens=1* delims==" %%i in ('findstr /i /b "path=" "%ini%"') do set "Letzter=%%i"
if not defined Letzter (echo Kein Eintrag gefunden! & goto :eof)
echo %Letzter%
echo rd "%Letzter%\maildir" /S /Q 2>nul
bastla