Dateien mit Dateinamen aus beschreibenden Dateien umbennen
Hallo ich bin neu hier, eigentlich Tontechniker muss mich aber viel mit Windows und Linux beschäftigen, allerdings bislang nur mit sehr einfachen DosBatches und ShellScripten, und habe leider zu meinem Thema viele Tips und hinweise gefunden, allerdings nichts wirklich Zielführendes.
Mein Problem:
ich bekomme Täglich Daten geliefert bei denen ein "Datensatz" immer aus 2 Dateien besteht.
Eine davon ist eine Audiodatei, die andere eine beschreibende Textdatei im CSV Format, dh. mit Semikola getrennten Abschnitten.
Ich möchte nun gern die Audiodatei mit den aus der Beschreibenden Datei geparsten Daten umbenennen.
Das können im Extremfall einige 100 sein, die alle unterschiedliche Dateinamen haben (außer den beiden zusammengehörenden txt und wav Dateien).
Ein Beispiel:
12345678.txt
12345678.wav
98765432.txt
98765432.wav
etc etc etc
In den beschreibenden TXT Dateien befinden sich Titelname, Interpret und noch einige andere Daten die hier aber irrelevant sind.
Das auslesen der Textdateien per for /f "tokens=5,6 delims=;" habe ich schon realisiert.
Wobei ich hier immer nur einen Token ausgegeben bekomme obwohl ich doch 2 "Spalten" eingetragen habe, die einzeln sehr wohl funktionieren
und mir das entsprechende Ergebnis liefern
Wie jedoch mache ich die Zuordnung der gerade gelesenen Textdatei zur richtigen Audiodatei??
Geht das was ich vorhabe überhaupt mit einer FOR schleife??
Vielen lieben Dank
Mein Problem:
ich bekomme Täglich Daten geliefert bei denen ein "Datensatz" immer aus 2 Dateien besteht.
Eine davon ist eine Audiodatei, die andere eine beschreibende Textdatei im CSV Format, dh. mit Semikola getrennten Abschnitten.
Ich möchte nun gern die Audiodatei mit den aus der Beschreibenden Datei geparsten Daten umbenennen.
Das können im Extremfall einige 100 sein, die alle unterschiedliche Dateinamen haben (außer den beiden zusammengehörenden txt und wav Dateien).
Ein Beispiel:
12345678.txt
12345678.wav
98765432.txt
98765432.wav
etc etc etc
In den beschreibenden TXT Dateien befinden sich Titelname, Interpret und noch einige andere Daten die hier aber irrelevant sind.
Das auslesen der Textdateien per for /f "tokens=5,6 delims=;" habe ich schon realisiert.
Wobei ich hier immer nur einen Token ausgegeben bekomme obwohl ich doch 2 "Spalten" eingetragen habe, die einzeln sehr wohl funktionieren
und mir das entsprechende Ergebnis liefern
Wie jedoch mache ich die Zuordnung der gerade gelesenen Textdatei zur richtigen Audiodatei??
Geht das was ich vorhabe überhaupt mit einer FOR schleife??
Vielen lieben Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 21.01.2010 um 16:45:56 Uhr
Dateien mit Dateinamen aus beschreibenden Dateien umbennen
set /a rgc+=1643
Content-ID: 134035
Url: https://administrator.de/contentid/134035
Ausgedruckt am: 23.11.2024 um 04:11 Uhr
5 Kommentare
Neuester Kommentar
Hi!
Etwa so?
[/code]
'VBS
Dim oShell, oFso
set oShell = CreateObject("wscript.Shell")
Set oFso = CreateObject("scripting.filesystemobject")
AppPath = oFso.GetParentFolderName(WScript.ScriptFullName)
txtFileName = "a.txt"
txtReadName = "B"
If oFso.FileExists(apppath + "\" + txtFileName) Then
oFso.MoveFile apppath + "\" + Mid(txtFileName,1,1) + ".wav", apppath + "\" + txtReadName + ".wav"
End If
[code]
Grüße
Mayho
Etwa so?
[/code]
'VBS
Dim oShell, oFso
set oShell = CreateObject("wscript.Shell")
Set oFso = CreateObject("scripting.filesystemobject")
AppPath = oFso.GetParentFolderName(WScript.ScriptFullName)
txtFileName = "a.txt"
txtReadName = "B"
If oFso.FileExists(apppath + "\" + txtFileName) Then
oFso.MoveFile apppath + "\" + Mid(txtFileName,1,1) + ".wav", apppath + "\" + txtReadName + ".wav"
End If
[code]
Grüße
Mayho
Hallo derdoctor und willkommen im Forum!
Zunächst:
verwendest, stehen die beiden Token in "%%a" und "%%b".
Zusätzlich wirst Du eine Schleife für alle Dateien benötigen, etwa
Da Du nicht genau beschreibst, wie umbenannt werden soll, simuliert (durch das "
Grüße
bastla
Zunächst:
Das auslesen der Textdateien per for /f "tokens=5,6 delims=;" habe ich schon realisiert.
Wobei ich hier immer nur einen Token ausgegeben bekomme...
Wenn Du zBWobei ich hier immer nur einen Token ausgegeben bekomme...
for /f "tokens=5,6 delims=;" %%a ...
Zusätzlich wirst Du eine Schleife für alle Dateien benötigen, etwa
for /f "delims=" %%i in (*.txt) do if exist "%%~ni.wav" (
for /f "usebackq tokens=5,6 delims=;" %%a in ("%%i") do echo ren %%~ni.* "%%a - %%b.*"
)
pause
echo
" vor dem "ren
") mein Beispiel den Ablauf nur ...Grüße
bastla