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

BATCH - dynamische String Substitution

Frage Entwicklung Batch & Shell

Mitglied: lorus11

lorus11 (Level 1) - Jetzt verbinden

08.09.2010, aktualisiert 17:34 Uhr, 4725 Aufrufe, 3 Kommentare

Hallo Zusammen,

ich versuche gerade eine dynamische String Zerlegung nach dem Schema %string:str1=str2% hinzubekommen.
Wenn str2 eine Variable ist, funktioniert das Ganze auch, allerdings nicht wenn str1 Eine ist.

01.
@echo off 
02.
setlocal enabledelayedexpansion 
03.
 
04.
set string=abcd12345 
05.
set str1=abcd 
06.
set str2=wxyz 
07.
 
08.
set string_1=%string:abcd=!str2!% 
09.
set string_2=%string:!str1!=wxyz% 
10.
set string_3=%string:!str1!=!str2!% 
11.
 
12.
set str


Ausgabe:
string_1 = wxyz12345 --> Funktioniert
string_2 = abcd12345 --> Funktioniert nicht
string_3 = abcd12345 --> Funktioniert nicht


Wo liegt hier der Fehler?



Grüße,

Lorus
Mitglied: bastla
08.09.2010 um 14:46 Uhr
Hallo lorus11!

Eine Antwort auf Deine konkrete Frage habe ich zwar gerade nicht zu bieten, aber:
01.
@echo off & setlocal 
02.
set string=abcd12345 
03.
set str1=abcd 
04.
set str2=wxyz 
05.
 
06.
call set string_1=%%string:abcd=%str2%%% 
07.
call set string_2=%%string:%str1%=wxyz%% 
08.
call set string_3=%%string:%str1%=%str2%%% 
09.
 
10.
set str
Grüße
bastla
Bitte warten ..
Mitglied: lorus11
08.09.2010 um 17:33 Uhr
Super, so funktionierts natürlich auch.

Bin in der Zwischenzeit allerdings auch noch auf eine weitere Lösung gestoßen, die ich nicht vorenthalten möchte.

01.
@echo off 
02.
setlocal enabledelayedexpansion 
03.
 
04.
set string=abcd12345 
05.
set str1=abcd 
06.
set str2=wxyz 
07.
 
08.
set string_1=!string:abcd=%str2%! 
09.
set string_2=!string:%str1%=wxyz! 
10.
set string_3=!string:%str1%=%str2%! 
11.
 
12.
set str
Bitte warten ..
Mitglied: pieh-ejdsch
08.09.2010 um 18:38 Uhr
moin,
eine andere möglichkeit
01.
@echo off 
02.
 
03.
set "string=abcd%12345" 
04.
set "str1=abcd%" 
05.
set "str2=!wxyz" 
06.
 
07.
for /f "tokens=*" %%i in ("%str1%=%str2%") do ( 
08.
	call set "string=%%string:%%i=%%j%%" 
09.
	setlocal enabledelayedexpansion 
10.
	for /f "tokens=*" %%j in ("!string!") do endlocal&echo %%j 
11.
)
Gruß Phil
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Teile eines Dateinamens ändern mit Batch Datei (4)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: CPU-Auslastung eines Prozesses auslesen und als Variable definieren (2)

Frage von tralveller zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch um Benutzer aus Sitzung abzumelden (15)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst ZIP-Archive nach Dateien durchsuchen und Pfade ausgeben (33)

Frage von evinben zum Thema Batch & Shell ...

Router & Routing
Routingproblem in Homerouter-Kaskade mit Raspi (20)

Frage von Oldschool zum Thema Router & Routing ...

Server
Freenas schlechte Schreib Performance bei NFS (16)

Frage von janosch12 zum Thema Server ...

C und C++
Methode multiple return values (8)

Frage von mayho33 zum Thema C und C ...