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-Key: 107673

Url: https://administrator.de/contentid/107673

Printed on: April 26, 2024 at 21:04 o'clock

Mitglied: 60730
60730 Jan 31, 2009 at 10:21:30 (UTC)
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ß
Member: bastla
bastla Jan 31, 2009 at 14:28:35 (UTC)
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
Member: Biber
Biber Jan 31, 2009 at 15:55:35 (UTC)
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
Member: bastla
bastla Jan 31, 2009 at 15:59:31 (UTC)
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
Mitglied: 60730
60730 Jan 31, 2009 at 16:14:42 (UTC)
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
Member: Dino2002
Dino2002 Feb 02, 2009 at 13:15:40 (UTC)
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