ren
Goto Top

Text in Variable durch Varible ersetzen

Mein Problem: Ich versuche einen Variable zu bearbeiten, dazu habe ich folgendes schon gefunden:
set test=c:\ablage\test\1
set test1=%test:c:\ablage\="  
::test1 hat jetzt den Wert test\1
mein Problem ist jetzt aber, dass der Wert c:\ablage\ variabel ist, also auch in einer Variablen steckt:
set del=c:\ablage\
set test=c:\ablage\test\1
set test1=%test:%del%="  
::test1 soll jetzt den Wert test\1 haben, hat es aber nicht
Wie muss ich die %-Zeichen Escapen oder was muss ich sonst machen, damit das gewünschte Ergebnis herauskommt? Das ganze muss unter Windows 200 und neuer funktionieren. Danke schon mal...

Content-ID: 101097

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

Ausgedruckt am: 22.11.2024 um 21:11 Uhr

Biber
Biber 05.11.2008 um 15:10:57 Uhr
Goto Top
Moin Ren,

am einfachsten ginge es mit "DelayedExpansion"
>set "del=c:\ablage\"  

(=15:05:07  D:\temp=)
>set "test=c:\ablage\test\1"  

(=15:05:51  D:\temp=)
>@echo !test:%del%=!
test\1
Dazu in der ersten Batchzeile eingeben
@echo off % setlocal EnableDelayedExpansion

Grüße
Biber
bastla
bastla 05.11.2008 um 15:11:33 Uhr
Goto Top
Hallo Ren!

Versuch es so:
@echo off & setlocal
set del=c:\ablage\
set test=c:\ablage\test\1
call set "test1=%%test:%del%=%%"  
echo %test1%
oder so:
@echo off & setlocal enabledelayedexpansion
set del=c:\ablage\
set test=c:\ablage\test\1
set "test1=!test:%del%=!"  
echo %test1%
Grüße
bastla

[Edit] @Biber: Schon wieder ... [/Edit]
Ren
Ren 05.11.2008 um 15:38:55 Uhr
Goto Top
hi, das ging ja schnell!
Also, alle drei Vorschläge gingen zwar nicht, aber die Kombination aus dem 3. und dem 1. klappt:
@echo off & setlocal enabledelayedexpansion
set "del=c:\ablage\"  
set "test=c:\ablage\test\1"  
echo !test:%del%=!
coole Sache, und ich muss gestehen, dass ich nichts verstehe. Ich google jetzt mal einen Runde nach enabledelayedexpansion, da scheint es ja etwas zu geben, was ich so noch nicht kenne!
danke