Wie teile ich in einer Batchdatei Verzeichnispfade in verschiedene Strings auf
Hallo Leute,
ihr beantwortet so toll Fragen zu den Batchdateien, dass ich hoffe, ihr könnt auch mir helfen.
Ich habe folgendes Problem:
In einer ini-Datei habe ich mehrere Verzeichnispfade in der Form:
C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\Adobe\Acrobat
C:\WINDOWS\system32\drivers
\\server\daten\Udo\Filme
also sowohl UNC-Pfade, als auch lokale.
nun muß ich diese in eine neue Datei schreiben und dies in der Form:
C,Dokumente und Einstellungen\All Users\Anwendungsdaten\Adobe\Acrobat
C,WINDOWS\system32\drivers
\\server,daten\Udo\Filme
also bei lokalen Pfaden den Laufwerksbuchstaben ohne ":" und "\", und dann den Rest des Pfades und beides durch ein Komma getrennt
und bei UNC-Pfaden den Computernamen mit "\\" an Anfang und dann den Rest ohne "\" am Anfang, wieder getrennt durch ein Komma
Das einlesen der Datei mit FOR kann ich, aber die Auftrennung der Variablen bekomme ich dann nicht hin. Einer der Test sieht so aus für lokale Pfade:
set Pfad=C:\WINDOWS\system32\drivers
for %%i in ("%Pfad%") do set 1Pfad=%%~pi
for /F "delims=\ tokens=1,2,3,4*" %%i in ("%Pfad%") do set LW=%%i
for /F "delims=\ tokens=3*" %%i in ("%Pfad%") do set Restpfad=%%i
echo Pfad=%Pfad%
echo 1Pfad=%1Pfad%
echo LW=%LW%
echo Restpfad=%Restpfad%
Kann mir jemand helfen ???
ihr beantwortet so toll Fragen zu den Batchdateien, dass ich hoffe, ihr könnt auch mir helfen.
Ich habe folgendes Problem:
In einer ini-Datei habe ich mehrere Verzeichnispfade in der Form:
C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\Adobe\Acrobat
C:\WINDOWS\system32\drivers
\\server\daten\Udo\Filme
also sowohl UNC-Pfade, als auch lokale.
nun muß ich diese in eine neue Datei schreiben und dies in der Form:
C,Dokumente und Einstellungen\All Users\Anwendungsdaten\Adobe\Acrobat
C,WINDOWS\system32\drivers
\\server,daten\Udo\Filme
also bei lokalen Pfaden den Laufwerksbuchstaben ohne ":" und "\", und dann den Rest des Pfades und beides durch ein Komma getrennt
und bei UNC-Pfaden den Computernamen mit "\\" an Anfang und dann den Rest ohne "\" am Anfang, wieder getrennt durch ein Komma
Das einlesen der Datei mit FOR kann ich, aber die Auftrennung der Variablen bekomme ich dann nicht hin. Einer der Test sieht so aus für lokale Pfade:
set Pfad=C:\WINDOWS\system32\drivers
for %%i in ("%Pfad%") do set 1Pfad=%%~pi
for /F "delims=\ tokens=1,2,3,4*" %%i in ("%Pfad%") do set LW=%%i
for /F "delims=\ tokens=3*" %%i in ("%Pfad%") do set Restpfad=%%i
echo Pfad=%Pfad%
echo 1Pfad=%1Pfad%
echo LW=%LW%
echo Restpfad=%Restpfad%
Kann mir jemand helfen ???
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 112484
Url: https://administrator.de/forum/wie-teile-ich-in-einer-batchdatei-verzeichnispfade-in-verschiedene-strings-auf-112484.html
Ausgedruckt am: 23.05.2025 um 21:05 Uhr
2 Kommentare
Neuester Kommentar
Hallo gudewi!
Etwa so:
Grüße
bastla
Etwa so:
@echo off & setlocal
set "Ein=D:\Pfade.txt"
set "Aus=D:\Liste.txt"
if exist "%Aus%" del "%Aus%"
for /f "usebackq delims=" %%i in ("%Ein%") do call :ProcessPath "%%i"
goto :eof
:ProcessPath
set "LW=%~d1"
set "P=%~pnx1"
if "%LW%"=="\\" (
for /f "tokens=1* delims=\" %%a in ("%P%") do (
set "LW=%LW%%%a"
set "P=%%b"
)
)
if "%P:~,1%"=="\" set "P=%P:~1%"
>>"%Aus%" echo %LW::=%,%P%
goto :eof
bastla