STRING AUS EINER BATCHDATEI AUSLESEN
Ähnlich wie Instr(string) dem VB Kommando
Hallo Kollegen,
ich möchte gerne aus einem STRING (den hol ich mir mit einem FOR /R) auf gewisse Teile checken....
also z.B.
@echo off
for /r \\servername\ShareName\Verz\Subverz %%I in ("*.*") DO CALL :EVERY %%I
GOTO ENDE
:EVERY
ECHO %1
REM UND HIER MÖCHTE ICH z:b. Pfad vom Dateiname teilen, die 3-5 Stelle des Dateinamens wissen etc.
:ENDE
So, und wer kann mir da jetzt helfen ????
Danke
Hallo Kollegen,
ich möchte gerne aus einem STRING (den hol ich mir mit einem FOR /R) auf gewisse Teile checken....
also z.B.
@echo off
for /r \\servername\ShareName\Verz\Subverz %%I in ("*.*") DO CALL :EVERY %%I
GOTO ENDE
:EVERY
ECHO %1
REM UND HIER MÖCHTE ICH z:b. Pfad vom Dateiname teilen, die 3-5 Stelle des Dateinamens wissen etc.
:ENDE
So, und wer kann mir da jetzt helfen ????
Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 13014
Url: https://administrator.de/contentid/13014
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
5 Kommentare
Neuester Kommentar
Mmmmja, Netzadmin,
gehen tut das - Aufwand hängt davon ab, wie variabel es sein soll
Wenn Du die Pfadebene ABSOLUT kennst, ist es Spielerei.
(Output: ) Sub1
...so könntest Du die vierte Ebene meinetwegen rausfiltern
..Zum Beispiel also...
Wenn du die Ebene nur RELATIV weißt ( meinetwegen immer die vorletzte), dann müsste man wieder ein kleines Loop innerhalb eines Bätchelchens einbauen, um die Anzahl der Unterpfade/der Argumente zu ermitteln.
Geht bestimmt auch eleganter... aber als Skizze reichts.
Wenn es ums LETZTE Unterverzeichnis geht, reicht ein Einzeiler (5 Ebenen max. angenommen):
Grüße
Biber
[Edit] Tipp/Denkfehlerkorrektur [/Edit]
gehen tut das - Aufwand hängt davon ab, wie variabel es sein soll
Wenn Du die Pfadebene ABSOLUT kennst, ist es Spielerei.
for /F "delims=\ tokens=4" %i in ("\\server\share\Verz\Sub1\Sub2\") do echo %i
(Output: ) Sub1
...so könntest Du die vierte Ebene meinetwegen rausfiltern
..Zum Beispiel also...
for /F "delims=\ tokens=4" %i in ("\\server\share\Verz\Sub1\Sub2\") do Set VarDirname=%i
for /F "delims=\ tokens=1-5" %%i in ("\\server\share\Verz\Sub1\Sub2\") do goto :loop %%i %%j %%k %%l %%m
goto Ende
:loop
if (%5)==() set Vorletztes=%3
if (%4)==() set Vorletztes=%2
if (%3)==() set Vorletztes=%1
if (%2)==() (echo Fehler...gibt kein Vorletztes) & (goto :eof)
echo Vorletztes Unterverzeichnis ist %Vorletztes%
goto :eof
:ende
Wenn es ums LETZTE Unterverzeichnis geht, reicht ein Einzeiler (5 Ebenen max. angenommen):
for /F "delims=\ tokens=1-5" %i in ("\\server\share\Verz\Sub1\Sub2\") do for %a in (%i %j %k %l %m) do set Letztes=%a
Grüße
Biber
[Edit] Tipp/Denkfehlerkorrektur [/Edit]