max5moritz
Goto Top

StringLänge einer Variable durch Variable kürzen

Hallo Batchler,

ich habe folgendes Problem:
eine Variable, nenne wir sie %code% soll durch eine andere, nennen wir sie %LenSet% in der Länge gekürzt werden.
Code hat etwa folgenden Inhalt:
" -s 720x432 -vf crop=720:432:0:72 -aspect 16:9 -c:a copy -map 0:0 -map 0:1 "

und soll nun durch LenSet um 19 gekürzt werden, so dass das heraus kommt:
" -s 720x432 -vf crop=720:432:0:72 -aspect 16:9 -c:a copy "

set "newCode=%%code:~0,-%LenSet%%%"  

bringt leider nicht das gewünschte Ergebnis.

Dass der Inhalt von %code% und %LenSet% verschieden sind, erwähne ich nur der Vollständigkeit halber.

Danke im Voraus für die Mithilfe.

max5moritz

Content-ID: 197605

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

Ausgedruckt am: 21.11.2024 um 22:11 Uhr

rubberman
rubberman 24.01.2013 um 18:43:49 Uhr
Goto Top
Hallo max5moritz.

set "code=-s 720x432 -vf crop=720:432:0:72 -aspect 16:9 -c:a copy -map 0:0 -map 0:1 "  
set /a  LenSet=19

call set "newCode=%%code:~0,-%LenSet%%%"  
echo %newCode%

So sollte das funktionieren. Diese Art von verschachtelter Variable erfordert CALL, anderenfalls müsstest du mit verzögerter Variablenerweiterung arbeiten, á la
set "newCode=!code:~0,-%LenSet%!"

Grüße
rubberman
max5moritz
max5moritz 24.01.2013 um 19:38:50 Uhr
Goto Top
Danke rubberman, das war es:

set "newCode=!code:~0,-%LenSet%!"