Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Wie teile ich in einer Batchdatei Verzeichnispfade in verschiedene Strings auf

Frage Microsoft Windows Tools

Mitglied: gudewi

gudewi (Level 1) - Jetzt verbinden

26.03.2009, aktualisiert 17:30 Uhr, 2690 Aufrufe, 2 Kommentare

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 ???
Mitglied: bastla
26.03.2009 um 17:44 Uhr
Hallo gudewi!

Etwa so:
01.
@echo off & setlocal 
02.
set "Ein=D:\Pfade.txt" 
03.
set "Aus=D:\Liste.txt" 
04.
 
05.
if exist "%Aus%" del "%Aus%" 
06.
for /f "usebackq delims=" %%i in ("%Ein%") do call :ProcessPath "%%i" 
07.
goto :eof 
08.
 
09.
:ProcessPath 
10.
set "LW=%~d1" 
11.
set "P=%~pnx1" 
12.
if "%LW%"=="\\" ( 
13.
    for /f "tokens=1* delims=\" %%a in ("%P%") do ( 
14.
        set "LW=%LW%%%a" 
15.
        set "P=%%b" 
16.
17.
18.
if "%P:~,1%"=="\" set "P=%P:~1%" 
19.
>>"%Aus%" echo %LW::=%,%P% 
20.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: gudewi
27.03.2009 um 08:28 Uhr
Wow,
unglaublich schnell und ...... es funktioniert!!!
Danke, Danke, Danke
bastla, du bist mein Held
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Teil eines Strings als Variable setzen (2)

Frage von tHe-jAy zum Thema Batch & Shell ...

Batch & Shell
gelöst Hilfe bei der Erstellung einer Batchdatei (10)

Frage von peterhart zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateien bezugnehmend auf Teil des Namens verschieben (8)

Frage von pbelcl zum Thema Batch & Shell ...

Neue Wissensbeiträge
Entwicklung

Exploit Development

Anleitung von burhanudinn123 zum Thema Entwicklung ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
Leiten "dumme" Switches VLAN-Tags mit durch? (19)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

Batch & Shell
Batch zum suchen und verschieben von Verknüpfungen (12)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (12)

Frage von departure69 zum Thema Windows Server ...

Windows Server
Terminalserver starten willkürlich neu (12)

Frage von thaefliger zum Thema Windows Server ...