Wie generiere ich eine Pfadangabe zu Dateien mit vob endung für ein inputscript um Handbrake zu automatisieren
Hallo erstmal,
ich hab hier ne menge toller scripts gelesen und dachte mir hier kann mir sicher einer helfen. Danke schon mal für alles.
Also nun zu meinem eigentlichen Problem:
Ich habe mir ein Script geschrieben um eingentlich alle einstellungen für Handbrake zu Automatisieren (Wers nicht kennt ein ziemlich praktischer Video Encodierer)
Nun müsste ich nur noch das Problem mit der generierung der Eingangsverzeichnisse lösen auf die ich mit mein Script zugreifen kann.
Ich hätte mir gedacht dass ich alle Ordner die vob files beinhalten in eine Datei schreibe und die ich dann zeilenweise verarbeite.
Das ganze für ISO files zu lösen war eigentlich kein Probelem da ich mit dir /b/a-d /s *.iso >> dateien.txt eine Datei generieren konnte die ich gebrauchen konnte.
Jetzt würde ich das ganze auch noch für die vob files lösen wollen dazu bräuchte ich was mit dem ich den Pfad zur Datei hin in eine textfile schreiben könnte, außerdem sollte die Pfadangabe nur einmal auftauchen, was sie nicht tun würde wenn ich wieder einfach nen befehl mit dir *.vob mache da ja mehrer vob files in einem dvd ordner sind.
Ich hätte mir überlegt dir /b/a-d /s *.vob >> dateien.txt
in eine Datei zu schreiben das ganze mit einer for schleife auszulesen mit "delimes=\" zu seperieren und den letzten tokken zu löschen.
Leider krieg ich das nicht mit der syntax gebacken...... heul
......
und dann wäre ja immer noch das Problem das die Pfadangabe nur einmal in der textdatei auftauchen soll ......
danke schon mal für die hilfe
cya
ich hab hier ne menge toller scripts gelesen und dachte mir hier kann mir sicher einer helfen. Danke schon mal für alles.
Also nun zu meinem eigentlichen Problem:
Ich habe mir ein Script geschrieben um eingentlich alle einstellungen für Handbrake zu Automatisieren (Wers nicht kennt ein ziemlich praktischer Video Encodierer)
Nun müsste ich nur noch das Problem mit der generierung der Eingangsverzeichnisse lösen auf die ich mit mein Script zugreifen kann.
Ich hätte mir gedacht dass ich alle Ordner die vob files beinhalten in eine Datei schreibe und die ich dann zeilenweise verarbeite.
Das ganze für ISO files zu lösen war eigentlich kein Probelem da ich mit dir /b/a-d /s *.iso >> dateien.txt eine Datei generieren konnte die ich gebrauchen konnte.
Jetzt würde ich das ganze auch noch für die vob files lösen wollen dazu bräuchte ich was mit dem ich den Pfad zur Datei hin in eine textfile schreiben könnte, außerdem sollte die Pfadangabe nur einmal auftauchen, was sie nicht tun würde wenn ich wieder einfach nen befehl mit dir *.vob mache da ja mehrer vob files in einem dvd ordner sind.
Ich hätte mir überlegt dir /b/a-d /s *.vob >> dateien.txt
in eine Datei zu schreiben das ganze mit einer for schleife auszulesen mit "delimes=\" zu seperieren und den letzten tokken zu löschen.
Leider krieg ich das nicht mit der syntax gebacken...... heul
und dann wäre ja immer noch das Problem das die Pfadangabe nur einmal in der textdatei auftauchen soll ......
danke schon mal für die hilfe
cya
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 158519
Url: https://administrator.de/forum/wie-generiere-ich-eine-pfadangabe-zu-dateien-mit-vob-endung-fuer-ein-inputscript-um-handbrake-zu-158519.html
Ausgedruckt am: 17.05.2025 um 03:05 Uhr
10 Kommentare
Neuester Kommentar

moin,
schreib doch mal deine bisherigen versuche auf?
Demos für dich zum spielen....
...liefert "alles"
... in eine Datei
..nur den Pfad
..nur den Dateinamen
...findet den wert in der Datei (oder auch nicht)
Ich hoffe mit diesem Satz von ungetesteten Schnippseln habe ich dich in die richtige Richtung geschubst - weiteres in der schwarzen Dosbox unter
Gruß
schreib doch mal deine bisherigen versuche auf?
Demos für dich zum spielen....
for /f %a in ('dir /b /s laufwerk:\pfad\*.vob') do echo %a
for /f %a in ('dir /b /s laufwerk:\pfad\*.vob') do echo %a>>laufwerk:\pfad\text.txt
for /f %a in ('dir /b /s laufwerk:\pfad\*.vob') do echo %~dpa>>laufwerk:\pfad\text.txt
for /f %a in ('dir /b /s laufwerk:\pfad\*.vob') do echo %~nxa>>laufwerk:\pfad\text.txt
findstr "wert" Datei
|| bedeutet unwahr
&& bedeutet wahr
for /f %a in ('dir /b /s laufwerk:\pfad\*.vob') do findstr "%~dpa" laufwerk:\pfad\text.txt || echo "%~dpa" >>laufwerk:\pfad\text.txt && echo %~nxa>>laufwerk:\pfad\text.txt
Ich hoffe mit diesem Satz von ungetesteten Schnippseln habe ich dich in die richtige Richtung geschubst - weiteres in der schwarzen Dosbox unter
for /?
Gruß
... und für den Fall, dass es in den Pfaden auch mal Leerzeichen gäbe:
und dann auch:
- daher:
Damit "
Falls Dir jetzt aufgefallen ist, wie oft hier "laufwerk:\pfad\text.txt" vorkommt, wird (hoffentlich) auch bei Dir der Wunsch entstehen, dafür eine Variable zu verwenden ...
Grüße
bastla
P.S.: Die abschließenden "\" in den gespeicherten Pfaden sollten eigentlich nicht stören ... [Edit] Tun sie aber doch, wenn auch nicht die aus den gespeicherten Pfaden...
[Edit]
for /f "delims=" %a in ('dir /b /a-d /s "laufwerk:\pfad\*.vob"') do echo %a
findstr /c:"wert" "Datei"
for /f "delims=" %a in ('dir /b /a-d /s "laufwerk:\pfad\*.vob"') do findstr /i /x /c:"%~dpa" "laufwerk:\pfad\text.txt">nul || >>"laufwerk:\pfad\text.txt" echo %~dpa
findstr
" beim ersten Pfad kein Problem hat, musst Du dafür sorgen, dass es bereits eine "laufwerk:\pfad\text.txt" gibt - etwa durchtype nul>"laufwerk:\pfad\text.txt"
Grüße
bastla
Hallo Killer-Loop!
Poste doch einfach einmal Deinen aktuellen Stand ...
... wobei ich zugeben muss, dass mein "P.S.:" von oben leider nicht ganz haltbar ist
- daher wird's doch etwas aufwändiger:
Als Hinweis: Da mit "\" in einem Suchbegriff das folgende Zeichen "maskiert" wird, muss, um tatsächlich nach "\" zu suchen, dieser verdoppelt werden ...
Grüße
bastla
Poste doch einfach einmal Deinen aktuellen Stand ...
... wobei ich zugeben muss, dass mein "P.S.:" von oben leider nicht ganz haltbar ist
@echo off & setlocal
set "Basis=D:\Dein Videoordner"
set "Liste=D:\Ordnerliste.txt"
type nul>"%Liste%"
for /f "delims=" %%a in ('dir /b /a-d /s "%Basis%\*.vob" 2^>nul') do set "Pfad=%%~dpa" & call :ProcessFolder
goto :eof
:ProcessFolder
set "Pfad=%Pfad:~,-1%"
findstr /i /x /c:"%Pfad:\=\\%" "%Liste%">nul || >>"%Liste%" echo %Pfad%
goto :eof
Grüße
bastla
Hallo Killer-Loop!
Für die meisten Batches gilt, dass Du "
Grüße
bastla
AHHHHH, sorry mein fehler ... XX
lag denke ich an dem "setlocal"
Soferne Du tatsächlich etwas bezüglich Batch-Erstellung (und nicht nur eine punktuelle Lösung) mitnehmen willst, solltest Du trotzdem Deinen Ansatz posten - das "lag denke ich an dem "setlocal"
setlocal
" würde ich in diesem Fall als Fehlerursache nämlich eher ausschließen ...aber wieseo was macht des überhaupt
Soferne es keinen Zusatz (insbesondere "enabledelayedexpansion
") hat, sorgt es nur dafür, dass Änderungen an Variablen (dazu zählt auch das Erstellen solcher) auf den aktuellen Batch (bzw genauer: bis zum nächsten "endlocal
", und ein solches wird am Batchende automatisch ausgeführt) beschränkt bleiben - insbesondere beim Testen (in der gleichen CMD-Shell) nicht unwichtig, damit nicht Variablenwerte von früheren Versuchen die Interpretation verfälschen.Für die meisten Batches gilt, dass Du "
setlocal
" unbesehen an den Anfang setzen kannst und sich daraus keine negativen Nebenwirkungen ergeben ...Grüße
bastla
Moin Killer-Loop,
Ich denke, damit spreche ich auch für bastla.
Biber
Zitat von @Killer-Loop:
Bei fragen dazu soll ich die in dem Thread noch stellen oder gleich einen neuen aufmachen ????
Gerne.Bei fragen dazu soll ich die in dem Thread noch stellen oder gleich einen neuen aufmachen ????
Ich denke, damit spreche ich auch für bastla.
cya
ym2Biber