Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Kommandozeilen-Tools: Alle Dateien oder Dateien in Unterordner bearbeiten

Empfohlene Antworten

Veröffentlicht

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 festlegen
  • Dateien der Unterordner (z. B. wieder mit einer bestimmten Dateiendung) als Input festlegen
  • Ausgabedateiname oder Ausgabepfad auf Grundlage der Input-Datei festlegen

Lässt sich sowas auch für einen mit weniger Programmierkenntnissen einstellen?

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.

  • Autor

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 funktioniert
  • das 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.

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.