Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Dateien in Unterverzeichnissen konvertieren und kopieren

Frage Entwicklung Batch & Shell

Mitglied: unicum

unicum (Level 1) - Jetzt verbinden

08.09.2010 um 20:15 Uhr, 3149 Aufrufe, 7 Kommentare

Hallo Liebe Community,
mit dem Skript unten möchte ich alle FLAC Dateien aus %src_dir%\Interpreter_x\Album_y\Datei_z.flac in
%dest_dir%\Interpreter_x\Album_y\Datei_z.mp3 kopieren/konvertieren.(Interpreter_x, Album_y und Datei_z stehen für beliebige Verzeinisse, Dateien)
Leider landen momentan alle konvertierten MP3 Dateien unter %dest_dir%\Datei_z.mp3
Da ich mich mit String-Operatoren nicht auskenne wollte ich diesbezüglich um Eure Hilfe bitten.
Die Zieldatei wird im letzten Parameter von lame als "%dest_dir%\%%~nx.mp3"festgelegt, das sollte bearbeitet werden.
Vielen Dank für Eure Hilfe im Voraus!
unicum

@echo on
::
set src_dir=g:\test\film
set temp_dir=g:\temp
set dest_dir=d:\archiv
set exedir=g:\test
::
xcopy %src_dir% %dest_dir% /T /E /I
for /r %src_dir% %%x in (dir /b *.flac) do (
%exedir%\flac -d "%%x" -o "%temp_dir%\%%~nx"
%exedir%\lame -V2 "%temp_dir%\%%~nx" "%dest_dir%\%%~nx.mp3"
del "%temp_dir%\%%~nx"
)
Mitglied: bastla
08.09.2010 um 20:39 Uhr
Hallo unicum und willkommen im Forum!

Vielleicht geht es so besser (und sicherer / kontrollierter):
01.
@echo on & setlocal 
02.
:: 
03.
set src_dir=g:\test\film 
04.
set temp_dir=g:\temp 
05.
set dest_dir=d:\archiv 
06.
set exedir=g:\test 
07.
:: 
08.
xcopy "%src_dir%" "%dest_dir%\" /E 
09.
for /r %src_dir% %%x in (*.flac) do ( 
10.
    "%exedir%\flac" -d "%%x" -o "%temp_dir%\%%~nx" 
11.
    if not errorlevel 1 "%exedir%\lame" -V2 "%temp_dir%\%%~nx" "%dest_dir%\%%~nx.mp3" && del "%temp_dir%\%%~nx" 
12.
)
Falls nicht beide Konvertierungsschritte erfolgreich (mit Errorlevel 0) beendet wurden, bleibt die (kopierte) Ausgangsdatei in "%temp_dir%" erhalten ...

Grüße
bastla

P.S.: Der Sinn der "xcopy"-Option "/T" war mir in diesem Zusammenhang nicht klar, weshalb ich sie weggelassen habe ...
Bitte warten ..
Mitglied: unicum
08.09.2010 um 21:08 Uhr
Servus Bastla,
und danke für deine schnelle Antwort auch dann wenn die keine Lösung für mein Problem ist.
Der Sinn von xcopy "%src_dir%" "%dest_dir%\" /E /T /I war, um die selbe Verzeinissstruktur unter %dest_dir% anzulegen die unter "src_dir" vorhanden ist.
Ich weiss nähmlich nicht ob lame.exe auch Verzeichnisse erzeugt oder nicht (sicher ist sicher). Mit xcopy "%src_dir%" "%dest_dir%\" /E werden alle FLAC-Dateien rüberkopiert, was ich definitiv nicht will.

Leider das Skript arbeitet wie früher also alle MP3 Dateien landen im %dest_dir% und nicht in den Unterverzeichnissen (unter %dest_dir%) die mit xcopy erzeugt wurden.
gruss,unicum
Bitte warten ..
Mitglied: bastla
08.09.2010 um 21:29 Uhr
Hallo unicum!

Sorry - da war ich zwar schnell, aber ziemlich auf dem Holzweg ...

Versuch es damit:
01.
@echo on & setlocal 
02.
:: 
03.
set src_dir=g:\test\film 
04.
set temp_dir=g:\temp 
05.
set dest_dir=d:\archiv 
06.
set exedir=g:\test 
07.
:: 
08.
echo xcopy "%src_dir%" "%dest_dir%\" /T /E 
09.
for /r "%src_dir%" %%x in (*.flac) do set "Full=%%~dpnx" & call :ProcessFile "%%x" 
10.
goto :eof 
11.
 
12.
:ProcessFile 
13.
call set "Rel=%%Full:%src_dir%\=%%" 
14.
"%exedir%\flac" -d %1 -o "%temp_dir%\%~n1" 
15.
if not errorlevel 1 "%exedir%\lame" -V2 "%temp_dir%\%~n1" "%dest_dir%\%Rel%.mp3" && del "%temp_dir%\%~n1" 
16.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: LotPings
08.09.2010 um 21:33 Uhr
Hallo unicum,
weder dein noch bastlas Batch berüchsichtigt den kompletten aktuellen Pfad,
diese ungetestete Version tut es:

01.
@echo on & setlocal 
02.
:: 
03.
set src_dir=g:\test\film 
04.
set temp_dir=g:\temp 
05.
set dest_dir=d:\archiv 
06.
set exedir=g:\test 
07.
:: 
08.
for /r %src_dir% %%x in (*.flac) do Call :Proc "%%~fx" 
09.
Pause 
10.
Goto :Eof 
11.
:Proc 
12.
Set "FlacPath=%~dp1" 
13.
Call Set "MpgPath=%%FlacPath:%src_dir%=%dest_dir%%%" 
14.
"%exedir%\flac" -d %1 -o "%temp_dir%\%~n1" 
15.
if not errorlevel 1 "%exedir%\lame" -V2 "%temp_dir%\%~n1" "%MpgPath%%~n1.mp3" && del "%temp_dir%\%~n1"
Gruß
LotPings

EDit: Danke für den Hinweis batsla, habs geändert.
Bitte warten ..
Mitglied: bastla
08.09.2010 um 21:39 Uhr
Hallo LotPings!

Ich hatte zwar die Leitung, auf der ich gestanden hatte, inzwischen auch wieder verlassen, aber die direkte Ersetzung von "%src_dir%" durch "%dest_dir%" ist natürlich eleganter ...

... allerdings wird's in ":Proc" mit "%%~nx" nicht ganz so gut klappen ...

Grüße
bastla
Bitte warten ..
Mitglied: unicum
09.09.2010 um 19:40 Uhr
Hallo LotPings, hallo bastla,
ich habe noch in LotPings`s Skript die Zeile
Call Set "MpgPath=%%FlacPath:%src_dir%=%dest_dir%%%"
mit dem roten % ergänzt und nun funktionieren beide Skripten. Vielen Dank für eure Hilfe!!
weder dein noch bastlas Batch berüchsichtigt den kompletten aktuellen Pfad,
Wirkt das irgendwo aus? Momentan tun beide Skripten das selbe.
Nochmals danke euch Beiden!
gruss,unicum
PS.:die xcopy Zeile ist nötig weil lame.exe keine Verzeichnisse erzeugen kann.
Bitte warten ..
Mitglied: LotPings
09.09.2010 um 19:50 Uhr
Zitat von unicum:
Hallo LotPings, hallo bastla,
ich habe noch in LotPings`s Skript die Zeile
Call Set "MpgPath=%%FlacPath:%src_dir%=%dest_dir%%%"
mit dem roten % ergänzt und nun funktionieren beide Skripten. Vielen Dank für eure Hilfe!!
Sorry, weiss nicht wo das % abhanden gekommen ist
> weder dein noch bastlas Batch berüchsichtigt den kompletten aktuellen Pfad,
Wirkt das irgendwo aus? Momentan tun beide Skripten das selbe.
Du musst auf die Zeiten achten, das bezog sich auf bastlas ersten Batch, den zweiten 4 min vor meinem gepostet konnte ich beim Schreiben noch nicht sehen.
Nochmals danke euch Beiden!
Gerne

Gruß
LotPings
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
C und C++
Dateien in Ordner kopieren anhand vom Teil eines Dateinamen (22)

Frage von onlyforu8373 zum Thema C und C ...

Batch & Shell
Dateien trotz Verwendung kopieren (2)

Frage von 112Timo zum Thema Batch & Shell ...

Batch & Shell
gelöst Ordner anhand von Dateinamen erstellen und Dateien in Ordner kopieren (3)

Frage von getmoving zum Thema Batch & Shell ...

Batch & Shell
Dateien kopieren die nicht mehr verändert werden? (10)

Frage von pbelcl zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (23)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (19)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...