thanquol
Goto Top

Übergebene Variable und Rest ausgeben?

Ahoi,

ich stehe grad vor folgendem "Problem"

ich hab eine :Funktion
die ich mittels
call :Funktion Parameter "langer String mit leerzeichen"
aufrufe!

Nun hab ich in der :Funktion
%1 = Parameter
%2 = "langer String mit leerzeichen"

Ich hätte %2 aber gern ohne leerzeichen, ohne den String nachträglich noch bearbeiten zu müssen.

Mittels:
call :Funktion Parameter langer String mit leerzeichen
erreiche ich:
%1 = Parameter
%2 = langer
%3 = String
%4 ....

Gibt es nun hier eine "Sondervariable" mit der ich %2-Rest aller übergebener Variablen anzeigen lassen kann?
Ich der mIRC "Programmiersprache" geht sowas mit $2-

Kennt Batch sowas auch?

Danke!

Content-ID: 85253

Url: https://administrator.de/forum/uebergebene-variable-und-rest-ausgeben-85253.html

Ausgedruckt am: 25.12.2024 um 15:12 Uhr

bastla
bastla 11.04.2008 um 07:51:40 Uhr
Goto Top
Hallo Thanquol!

Dazu brauchst Du eine Zerlegung mittels "for /f", also etwa:
@echo off & setlocal
call :Funktion Parameter1 "langer String mit Leerzeichen"  
goto :eof

:Funktion
for /f "tokens=1*" %%i in ("%~2") do set "Anfang=%%i" & set "Rest=%%j"  
echo %1
echo %Anfang%
echo %Rest%
goto :eof

Grüße
bastla
tacker
tacker 11.04.2008 um 09:02:50 Uhr
Goto Top
Guten Tag

wen du nur die Leerzeichen aus dem String entfernen willst kannst du dich auch diesem command bedienen:

set stringnachher=%stringvorher: =%

Dies würde dann so aussehen:
@echo off & setlocal
call :Funktion Parameter1 "langer String mit Leerzeichen"  
goto :eof

:Funktion
set stringvorher=%2
set stringnachher=%stringvorher: =%
echo %1
echo.String_Vorher: %stringvorher%
echo.String_Nachher: %stringnachher%
goto :eof
natürlich noch potential zum komprimieren vorhanden...

Grüsse tacker
Thanquol
Thanquol 11.04.2008 um 12:03:08 Uhr
Goto Top
Hiho,

danke für die Tipps,

aber der Befehl von Bastla:
%~2
macht exakt das was ich will ;)

auch ohne Vorschleife, oder sonstige Stringbearbeitung!