occi23 Geschrieben 16. Februar 2010 Teilen Geschrieben 16. Februar 2010 Hallo, ich verwende eine Reihe von Kommandozeilenprogrammen, nur leider fehlen mir Kenntnisse im Bereich der Batch-Programmierung. Bisher musste ich immer die Pfade genau angeben. Ich suche nach einer Möglichkeit, wie ich das möglichst variabel gestallten kann: alle Dateien einer bestimmten Dateiendung oder mit bestimmten Zeichen im Rahmen als Input festlegenDateien der Unterordner (z. B. wieder mit einer bestimmten Dateiendung) als Input festlegenAusgabedateiname oder Ausgabepfad auf Grundlage der Input-Datei festlegen Lässt sich sowas auch für einen mit weniger Programmierkenntnissen einstellen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
User-Root Geschrieben 22. Februar 2010 Teilen Geschrieben 22. Februar 2010 Wonach suchst du genau? Benötigst du jetzt ein paar zeilen Code, der es dir erspart gezielte Eingaben machen zu müssen bei deinen jetzigen Batches? Sollen neue Batches enstehen, welche die alten ersetzen? Welche From von Inputs hast du dir denn genau vorgestellt? Wie soll denn nachher die Aussgabe aussehen? Rename? Copy? Print? An und für sich ist es schon möglich mit Variablen Eingaben abzufragen um diese später in Befehlsketten wieder nutzen zu können. Aber wenn du von Batch-Programmierung nicht die Kenntnisse hast, wird das wohl nix werden. (Wer nur die grafische Oberfläche kennt und die Kommandozeile meidet, wird mit Batches nur als Nutzer arbeiten können.) Also entweder jemanden machen lassen, der sich damit auskennt, oder dir die Zeit nehmen sich ein wenig in die Batch-Programmierung einzulesen. Eine gute Quelle wäre z.B.: Wikibook Batch. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
occi23 Geschrieben 24. Februar 2010 Autor Teilen Geschrieben 24. Februar 2010 Du hast schon recht, am besten wäre das Einlesen in die Systematik, nur wenn ich mir scheinbar einfache Optionen zu mir bekannten Befehlen über google suche und ich am Ende eine 3 Seiten-Diskussion bekomme, weil halt diese scheinbar simple Option nicht enthalten ist, bin ich mir nciht sicher ob ich mich für das wenige Kommandozeile das ich nutzen will nicht übernehme. Ich hatte gehofft, dass es eine einfache Möglichkeit gibt, o.g. Sachen zu machen. Angenommen ich nutze den Lame-Encoder (für mp3) und haben folgende Kommandozeile (keine Ahnung die hinhaut, nur als Bsp.) lame.exe "c:\lied.wav" "d:\lied.mp3" Codiert die Datei lied.wav in lied.mp3. Was ich nun suche: anstelle von Input "lied.wav" etwas setzen, wodurch alle WAV-Dateien im Ordner C: oder alle Dateien mit "lied" im Namen bearbeitet werden. Ein einfachen setzen von ????.wav oder *.wav hat nicht funktioniertdas gleiche für Dateien in Unterordner machen; d.h. alle "lied.wav" in allen Unterordnern von C: umrechnen; oder alle WAV-Dateien in allen Unterordnern von C:anstelle von Output "lied.mp3" etwas setzen, das der gleiche Name (evtl. mit Zusatz) wie die Ausgabedatei Verwendung findet; z. B. "lied_neu.mp3" Soweit ich das beurteilen kann, glaube ich nicht, dass es eine einfache Lösung gibt, die ich für eine Vielzahl von unterschiedlichen Kommandozeilen einsetzen kann. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
User-Root Geschrieben 24. Februar 2010 Teilen Geschrieben 24. Februar 2010 Für die spezielle Problematik wäre z.B. eine Schleife recht Praktisch. Ein Beispiel wäre( ungeprüft; nur aus dem Kopf raus geschrieben): echo off color 1c :beginn setlocal ENABLEDELAYEDEXPANSION cls @echo.Multiple Wav zu MP3 Auswahl: @echo. set /p Auswahl=Wird nach Dateityp oder Dateiname gesucht? (t/n) if %Auswahl%==t goto dattyp set /p Datei=Welche Dateinamen werden gesucht? (Enter fuer alle) goto beginn1 :dattyp set /p Datei=Welcher Dateityp wird gesucht? (z.B. wav) :beginn1 set /p Dateiname_neu=Wie soll die Dateinamenerweiterung aussehen? (Enter fuer keine Aenderung) :beginn2 set /p Suchpfad=Wo sind die Dateien zu finden? (z.B. C:\temp) If not exist %suchpfad% @echo. Die Eingabe war falsch. Das Verzeichnis gibt es nicht. || goto beginn2 :beginn3 set /p Zielpfad=Wo sollen die neuen Datein hin? (z.B. d:\) if not exist %zielpfad% @echo. Die Eingabe war falsch. Das Verzeichnis gibt es nicht. || goto beginn3 for /f %%i in ('dir /b %suchpfad% | find "%Datei%"') do ( lame.exe "%suchpfad%\!!i" "%Zielpfad%\!!i%Dateiname_neu%" @echo. !!i wurde bearbeitet. ) endlocal set /p nochmal=Noch ein Durchlauf? (y/n) if %nochmal%==y goto beginn Aber wie gesagt: Ungetestet. Und wie du siehst ist das nicht "mal so schnell" hingeschrieben. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.