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

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

Printed on: April 19, 2024 at 04:04 o'clock

Member: bastla
bastla Apr 11, 2008 at 05:51:40 (UTC)
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
Member: tacker
tacker Apr 11, 2008 at 07:02:50 (UTC)
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
Member: Thanquol
Thanquol Apr 11, 2008 at 10:03:08 (UTC)
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!