Forum: PC-Programmierung Batch: Variable Zeichen aus einem String schneiden


von Christian B. (sourcecode)


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

von Sascha R. (srt2018)


Lesenswert?

Probier mal:
1
call echo.%%String:~0,%New_StrLength%%%

von Sascha R. (srt2018)


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%%

von Christian B. (sourcecode)


Lesenswert?

So geht es. Vielen Dank.

@echo off
set String=C:\Users\xxxxxx\Desktop\System
set StrLength=30
set /a New_StrLength=%StrLength%-7
call set New_String=%%String:~0,%New_StrLength%%%
echo.%New_String%

von Gebruenn (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.