Batch: Variable Zeichen aus einem String schneiden

OP #5556809
Lesenswert?

Hallo,

ich möchte gerne einen String um X Zeichen schneiden.

Ich habe es mal so versucht.

set /a New_StrLength=%StrLength%-25 // New_StrLength=47
echo.%String:~0,%New_StrLength% <-- funktioniert so nicht
echo.%String:~0,%New_StrLength%% <-- auch so nicht

echo.%String:~0,47% <-- bringt zwar das gewünschte Ergebnis, soll aber
                        variabel sein

Wie macht man es richtig?

Vielen Dank im Voraus.

Gruß
Christian
#5557094
Lesenswert?

So geht es, frag bitte nicht warum:
1
call echo.%String:~0,^%New_StrLength%%

Beispiel:
1
> set String=abcdefg
2
> set New_StrLength=4
3
> call echo.%String:~0,^%New_StrLength%%
4
abcd

Statt direkt mit echo kann man auch mit set eine weitere Variable 
zuweisen:
1
call set NewString=%String:~0,^%New_StrLength%%
Gast #7174978
Lesenswert?

Hallo zusammen,

da ich auch auf der Suche war und eigentlich eine Übersicht gebraucht 
hätte, ich bin hier trotzdem über Google gelandet.
Ich habe zum Schluss selbst getestet mit welchen Angaben ich den String 
einer Variablen wie beschneiden kann und möchte das Ergebnis gerne mit 
der Welt teilen:


Syntax:
1
var=%var:~n,m%

n ist die Angabe der Stelle. m ist die Anzahl der Zeichen. n wird ab 0 
gezählt.
1
n    ab Stelle        von links
2
-n   ab Stelle        von rechts
3
m    Anzahl Zeichen   mit, von links
4
-m   Anzahl Zeichen   ohne, von rechts

Beispiele:
1
var =      1234567890        Alle Zeichen ab Stelle 3
2
Befehl =   var=%var:~3%
3
Ergebnis = 4567890
4

5
var =      1234567890        Alle Zeichen ab Stelle 3 (von rechts)
6
Befehl =   var=%var:~-3%
7
Ergebnis = 890
8

9
var =      1234567890        3 Zeichen ab Stelle 0
10
Befehl =   var=%var:~0,3%
11
Ergebnis = 123
12

13
var =      1234567890        0 Zeichen ab Stelle 3
14
Befehl =   var=%var:~3,0%
15
Ergebnis =
16

17
var =      1234567890       Ohne 3 Zeichen (von rechts) ab Stelle 0
18
Befehl =   var=%var:~0,-3%
19
Ergebnis = 1234567
20

21
var =      1234567890        0 Zeichen ab Stelle 3 (von rechts)
22
Befehl =   var=%var:~-3,0%
23
Ergebnis =
24

25
var =      1234567890        2 Zeichen ab Stelle 3
26
Befehl =   var=%var:~3,2%
27
Ergebnis = 45
28

29
var =      1234567890        Ohne 2 Zeichen (von rechts) ab Stelle 3
30
Befehl =   var=%var:~3,-2%
31
Ergebnis = 45678
32

33
var =      1234567890        2 Zeichen ab Stelle 3 (von rechts)
34
Befehl =   var=%var:~-3,2%
35
Ergebnis = 89
36

37
var =      1234567890        Ohne 2 Zeichen (von rechts) ab Stelle 3 (von rechts)
38
Befehl =   var=%var:~-3,-2%
39
Ergebnis = 8


Grüße!
Gebruenn

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren