Batch: Variable Zeichen aus einem String schneiden

OP #5556809
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
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
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

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.