Zum Inhalt springen

Werte in Batch um 1 erhöhen


YAMBi

Empfohlene Beiträge

Hallo,

ich habe mir eine Batchdatei gebastelt mit der ich mittels MKVMerge Videos ummuxen lasse. Die Dateien liegen alle schön nummeriert im gleiche Ordner wie die Batch. Jede Zeile in der Batch beinhaltet also einen um 1 höheren Wert als die vorherige Zeile, z. B. 01.mkv -> 02.mkv usw. Ist es irgendwie möglich, dass man diese Werte automatisch je Zeile um 1 erhöht? Ich würde über der Zeile z. B. per 'Set' einen Wert setzen der dann an einer bestimmten Stelle in den Zeilen eingefügt und je Zeile um 1 erhöht wird?

Gebe ich dort "0" ein steht in der 1. Zeile "01", in der 2. Zeile "02" usw. Trage ich dort 10 ein, steht in der 1. Zeile "11" und in der 2. Zeile "12". Geht das zu machen?

Yambi

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hab vielleicht nicht genau beschrieben was ich will: Die Inputdateien heißen immer gleich. Es handelt sich um Serienepisoden die umgerechnet werden. Jede Episode bzw. deren Streams hat eine Nummer. Das Output variiert aber, da auf Disk 1 z. B. Folgen 1 - 9 liegen wird auch als Output 00.mp4 bis 09.mp4 ausgegeben. Bei Disk 2 beginnt der Input wieder bei 00, der Ouput aber geht weiter bei z. B. 10.mp4 usw. Ich will jetzt die Outputnamen möglichst einfach erhöhen, z. B. indem ich oben in der Datei einen Wert "00" setze und dann bei Output 1 steht "00+1". Tragen ich oben "09" ein erhalte ich Output "09+1", also 10.

Den Rest könnte ich mit einer For-Schleife machen, damit habe ich aber keine Erfahrungen und wäre auch zu kompliziert. Der Input ist aber nicht das Problem.

Link zu diesem Kommentar
Auf anderen Seiten teilen

aus dateinamen muss nichts rausgeholt werden. ich gebe den dateinamen an und er soll um einem wert erhöht werden. zeile 1 um 1, zeile 2 um 2 usw. den "basiswert" könnte man oben per 'set' setzen

Gesendet von meinem GT-I9100 mit Tapatalk

Link zu diesem Kommentar
Auf anderen Seiten teilen

Innerhalb einer Bat-Datei sollte das eigentlich kein Problem sein.

Den entsprechenden Start-Wert könntest du auch als Variable an die .bat-Datei übergeben.

Mal als kleines Beispiel eine Bat-Datei, die eine Übergabe erwartet als Startwert und hochzählt.

@echo off

if defined %1 goto mit_startwert

goto ohne_startwert


:mit_startwert

set variable=%1

echo %variable%

set /a variable=%variable%+1

echo %variable%

goto ende


:ohne_startwert

set /a variable=0

echo %variable%

set /a variable+=1

echo %variable%

goto ende



:ende

echo "Ende"

pause

Könnte man natürlich auch in eine "goto-Schleife" mit if-Anweisung reinpacken, um weniger schreiben zu müssen eventuell.

Einen zweiten Übergabewert könnte man mit %2, einen dritten mit %3 abgreifen.

Bearbeitet von Crash2001
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ist nicht ganz das was ich suche, du denkst vermutlich etwas zu kompliziert. Ich hab mal etwas nach den set Kommando gesucht und es so halbwegs hinbekommen

set n=0

set /a n1=%n%+1

set /a n1=%n%+2

program input output%n1%

program input output%n2%

Jetzt wird Zeile 1 als output1, Zeile 2 als output2 usw. ausgegeben. Will ich, dass Zeile 1 output8 und Zeile 2 output9 ausgibt ändere ich einfach 'set n=0' in 'set n=7'. Problem ist aber noch, dass ich einstellige Zahlen nicht als 1 sondern als 01 ausgeben will. Mit n=00 geht das aber nicht. Ich könnte 'output%n1% durch output0%n1% ersetzen, dann bekomme ich aber Probleme wenn es über 10 geht, denn dann erhalte ich statt ouput10 ein output010.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja, bei den von dir gegebenen Infos ist es nicht gerade einfach nachzuvollziehen, wie das in der .bat-Datei dann aussieht...

Du könntest einfach überprüfen, ob der Ausgabewert < 10 ist und davon abhängig halt dann die führende Null ausgeben oder nicht.

Ob das nun mit Sprungmarke gemacht wird, oder ob du eine andere Variable ausgibst, in der du entweder die führende Null hinzufügst oder nicht, ist dann deiner Kreativität überlassen.

Genauso, ob du eine "Schleife" baust mit Sprungmarken, oder ob du es als "Spaghetticode" haben willst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...