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

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

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

Member: rubberman
rubberman Jan 24, 2013 at 17:43:49 (UTC)
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
Member: max5moritz
max5moritz Jan 24, 2013 at 18:38:50 (UTC)
Goto Top
Danke rubberman, das war es:

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