dino2002
Goto Top

Aus einem String best. Zeichen auslesen und ersetzen

Ich möchte mit Hilfe einer Batch Datei verschiedene Dateien über das Netzwerk kopieren. Im ersten Schritt werden die Dateien innerhalb von Windows basierten Systemen übertragen und anschließend an Linux Systeme. Sobald die Batch eine zu übertragende Datei findet erstellt sie ein Kopier-Script. Hierfür wird von der übertragenen Datei der komplette Pfad in einer Variablen zwischengespeichert. Der Pfad zu der Datei beinhaltet wie im Windows Umfeld bekannt mehrere backslashe "\" die unbedingt in normales slash "/" umgewandelt werden müssen um den Pfad ebenfalls für Linux Systeme lesbar zu machen.
Aus dem kleinen Auszug der Batch wird der komplette Pfad z.B. "\\hostname\Freigabe\OrdnerA\Unterordner" der zu kopierenden Datei in "ORG_DATEI_PFAD" geschrieben und anschließend um die ersten 19 Zeichen gekürzt. Nun möchte ich die "\" aus dem neuen Pfad durch "/" ersetzten. Der Pfad zu der kopierenden Datei ist fast immer unterschiedlich!
Vielen Dank in Voraus

MfG

Dino

SET "FILE_PATH=%%~dpi"
SET "NEW_FOLDER_PATH=!FILE_PATH:~19,250!"

Content-ID: 107673

Url: https://administrator.de/forum/aus-einem-string-best-zeichen-auslesen-und-ersetzen-107673.html

Ausgedruckt am: 23.04.2025 um 16:04 Uhr

60730
60730 31.01.2009 um 11:21:30 Uhr
Goto Top
Servus und (gerade noch so) willkommen.

Batch suchen und ersetzen in verbindung mit Bastlaund Biber - hatten wir erst letztes Wochenende wieder...

Ernsthaft - schau nach den fett markierten Wörtern und du wirst fündig, egal, was du ersetzen willst - dafür gibts wirklich sehr sehr viele gelöste und dokumentierte Beiträge.

Gruß
bastla
bastla 31.01.2009 um 15:28:35 Uhr
Goto Top
@timobeil: Du bist aber wieder streng heute face-wink - dabei geht's ja nur um eine Zeile:
SET "NEW_FOLDER_PATH=!NEW_FOLDER_PATH:\=/!"
Da ich nun schon mal dabei bin ...

@Dino2002: Es wird sich zwar kaum wirklich auswirken (Pfadlängen von 270 Zeichen bleiben Dir hoffentlich erspart face-wink), daher nur der Ordnung halber:

Gemeint ist Deine zweite gepostete Batchzeile vermutlich doch eher so:
SET "NEW_FOLDER_PATH=!FILE_PATH:~19!"
Richtig?

Grüße
bastla
Biber
Biber 31.01.2009 um 16:55:35 Uhr
Goto Top
Moin Dino2002, T-Mo und bastla,

bin versucht zu schreiben:
SET "FILE_PATH=%%~dpi"  
SET "NEW_FOLDER_PATH=%FILE_PATH:~19%"  
,,, wäre des Guten bereits genug.
Ich seh nix, was DelayedExpansion erfordern würde.

Grüße
Biber
bastla
bastla 31.01.2009 um 16:59:31 Uhr
Goto Top
@Biber
Ich seh nix
Im Hinblick auf die Formulierung "kleinen Auszug der Batch" gehe ich davon aus, dass da doch noch mehr sein könnte (sehen kann ich allerdings auch nix face-wink) ...

Grüße
bastla
60730
60730 31.01.2009 um 17:14:42 Uhr
Goto Top
Zitat von @bastla:
@timobeil: Du bist aber wieder streng heute face-wink - dabei geht's ja nur um eine Zeile:
Grüße
bastla

@bastla: Genau um diese eine Zeile - am besten die erste gings mir ja.
Und wenn dann der Autor dann auch noch schlecht versucht, den Thomas Mann Schreibstil -mit ohne Absätze zu verfassen *ärgs*...

Wie war das denn noch gleich - mit dem Suchen und Ersetzen Fred - den solltest du schon beginnen, sonst mach ich das noch face-wink

Ps: Ich "durfte" heute mal wieder Server umräumen und bin vielleicht auch deswegen etwas Frl. Rottenmeier face-wink
Ich bemühe mich weiterhin, wenn max. nur Frl. Rottenmeier und nicht Herr Rottweiler zu sein face-wink

Gruß

(edit) ach jetzt hab ichs ... oder wie aus einem vertipper aus "noch" "nich" werden kann...
und da mich und meine Abneigung, das Wort "NICHT" zu verhohnepiepen nicht jeder kennt ;(
War keine Absicht
Dino2002
Dino2002 02.02.2009 um 14:15:40 Uhr
Goto Top
Hallo zusammen,

vielen Dank für eure schnelle Hilfe! Meine Batch ist inzwischen sehr lang geworden und sicherlich nicht vorbildlich programmiert, zurecht gerückt und dokumentiert. Vor diesem Elend wollte ich lediglich die Forum Leser bewahren face-wink und vielleicht die eine oder andere Verwirrung ausschließen. Kurz und knapp ist manchmal mehr.

Vielen Dank noch mal

Viele Grüße
Dino