Wir verwenden die folgende Batch-Datei seit Jahren, um (legale) Audio-CDs in MP3s zu rippen, die unsere Mitarbeiter auf ihren iPods verwenden können. Aber seit Windows 10 (Ver. 1607 Build 14393.321) funktionieren sie nicht mehr. Ich denke, das Problem ist, dass Windows aus irgendeinem Grund die CDA-Dateien auf dem Laufwerk nicht mehr "sieht" (zumindest in der Befehlszeile). Windows Media Player erkennt das Laufwerk immer noch und wird es "rippen", aber das ist äußerst mühsam. Gibt es eine Möglichkeit, diese BAT-Datei wieder zum Laufen zu bringen?
Das Problem tritt in der FOR-Schleife auf ... dh. Die Routine wird sofort beendet, da die Schleife keine CDA-Dateien 'sehen' kann.
FOR /R D:\ %%G IN (D:\*.cda) DO (CALL :TEST_VLC "%%G")
@ECHO OFF
CLS
set OLDDIR=%CD%
SET a=%1
IF %1.==. GOTO :help
SET t=%2
IF %2.==. GOTO :help
SET e=%3
IF %3.==. SET e=mp3
MD %2
CD %2
setlocal ENABLEDELAYEDEXPANSION
@ECHO Ripping %2 from %OLDDIR%
cmd /c wizmo.exe close
GOTO :goforit
:after
endlocal
@ECHO ON
c:\Util\id3\id3.exe -M -t "%a%_%%f" -a %a% -l %t% *.%e%
REM c:\Util\id3\id3 -a "Author_Name" -t "Disc_Title %f" *.mp3
cd /d %OLDDIR%
cmd /c wizmo.exe open
goto :eof
:goforit
ECHO goforit %e% Transcoding %2
SET /a y=0
SET /a PADDED=0%y%
FOR /R D:\ %%G IN (D:\*.cda) DO (CALL :SUB_VLC "%%G")
GOTO :after
:help
@ECHO Syntax: RIP Artist[artist] Subdir[disc1] Format[[mp3]/wav]
GOTO :eof
:TEST_VLC
ECHO After ripping routine
:SUB_VLC
call SET /a y=y+1
echo begin padding
echo pad with your desired width - 1 leading zeroes
call SET PADDED=0%y%
echo slice off any zeroes you don't need -- BEWARE, this can truncate the value
echo the 2 at the end is the number of desired digits
SET PADDED=%PADDED:~-2%
REM end padding
ECHO %e% Transcoding %2 file %PADDED%
REM Here's where the actual transcoding/conversion happens. The next line
REM fires off a command to VLC.exe with the relevant arguments:
ECHO "C:\Program Files (x86)\VideoLAN\VLC\vlc" -I http cdda:///D:/ --cdda-track=!y! :sout=#transcode{vcodec=none,acodec=%e%,ab=320,channels=2,samplerate=44100}:std{access="file",mux=raw,dst="%t%!PADDING!.%e%"} vlc://quit
IF %e%==mp3 CALL "C:\Program Files (x86)\VideoLAN\VLC\vlc" -I http cdda:///D:/ --cdda-track=!y! :sout=#transcode{vcodec=none,acodec=%e%,ab=320,channels=2,samplerate=44100}:std{access="file",mux=raw,dst="%t%!PADDED!.%e%"} vlc://quit
IF %e%==wav CALL "C:\Program Files (x86)\VideoLAN\VLC\vlc" -I http cdda:///D:/ --cdda-track=!y! :sout=#transcode{vcodec=none,acodec=s16l,channels=2}:std{access="file",mux=wav,dst="%t%!PADDED!.%e%"} vlc://quit
:eof
command-line
audio
batch-file
vlc-media-player
jchwebdev
quelle
quelle
Windows 8 with Media Center
imWindows 10
Ruhestand war. Einige dieser Änderungen gelten weiterhin.Antworten:
1) In
.bat
einigen Fällen sollten Sie%%
anstelle von einem verwenden%
.2) Ich denke, das Problem kann sich in einer anderen Sache äußern. Sie sollten das Skript debuggen - fügen Sie diese Zeile unten hinzu:
Führen Sie dann die bat-Datei aus und sehen Sie in den Ausführungsprotokollen nach, was erfolgreich war und was nicht.
quelle