Teil des Pfades bis zu einem bestimmten Zeichen auslesen

dinoldo

Cadet 4th Year
Registriert
Juni 2017
Beiträge
104
Hallo Leute,

wie bekomme ich bitte in einer CMD-Datei von dem %Script_Path nur den Teil des Pfades vor dem dritten Backslash?

C:\CNC-Technik\CH-BAS01\Standards\2019\000000000000

Momentan habe ich es statisch über Anzahl der Zeichen (23) von links aus gelöst: SET Teil02=%Script_Path:~0,23%

Viele Grüße,
Dino
 
Hi XN04113,

ich habe ein vorhandenes Schript und würde gerne die Änderung dort ohne Powershell durchführen, falls es natürlich geht.
 
Code:
set Script_Path=C:\CNC-Technik\CH-BAS01\Standards\2019\000000000000
for /f "tokens=1,2,3* delims=\" %%a in ("%Script_Path%") do (
    set "CD_HD=%%a"
    set "CD_DIR1=%%b"
    set "CD_DIR2=%%c"
    set "CD_PATH=%%d"
)
set "CurrentWorkingDirectory=%CD_HD%\%CD_DIR1%\%CD_DIR2%
echo.%CurrentWorkingDirectory%
 
Zuletzt bearbeitet:
Falls es vielleicht irgendwann doch mal per PowerShell gehen soll:
PowerShell:
$Script_Path = "C:\CNC-Technik\CH-BAS01\Standards\2019\000000000000"
$SplitPath = ($Script_Path).Substring(0,23)
 
Danke ayngush,
Danke Micha45

Es funktioniert....
 
Code:
@echo off

set myvar="C:\CNC-Technik\CH-BAS01\Standards\2019\000000000000"
set outvar=
set maxTokens=3

:FORLOOP
For /F "tokens=1* delims=\" %%A IN (%myvar%) DO (
    echo %%A
    set myvar="%%B"
    set "outvar=%outvar%%%A\"
    set /A maxTokens=%maxTokens%-1
    
    if %maxTokens% leq 1 goto OUT
    if NOT "%myvar%"=="" goto FORLOOP
)
:OUT
echo %outvar%
sorry, hat mich grad gejuckt.

NICHT batch zu benutzen ist natuerlich der korrekte tipp. sowas geht sauberer in powershell, python oder aehnlichem viel besser.
 
Zurück
Oben