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, 4727 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 ..
Neue Wissensbeiträge
Batch & Shell

Batch - ein paar Basics die man kennen sollte

Tipp von Pedant zum Thema Batch & Shell ...

Microsoft

Restrictor: Profi-Schutz für jedes Window

(6)

Tipp von AlFalcone zum Thema Microsoft ...

Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
gelöst Benutzer lässt sich nur an einem Clientcomputer anmelden (17)

Frage von Ammann zum Thema Windows Server ...

Netzwerke
SFP Modul (miniGibic) (11)

Frage von apranet zum Thema Netzwerke ...

Batch & Shell
gelöst Gruppenzugehörigkeit von AD Usern ermitteln - die Perfektion fehlt (11)

Frage von Stefan007 zum Thema Batch & Shell ...