.CDA Wird in der Batchdatei seit dem Upgrade auf Windows 10 nicht erkannt

0

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

jchwebdev
quelle
Welche Version von Windows 10 verwenden Sie genau? WMP hat mit Windows 8 Funktionsänderungen erhalten. Eine dieser Änderungen hat einige der Medienfunktionen entfernt, es sei denn, Sie haben ein Upgrade auf Media Center durchgeführt , das Windows 8 with Media Centerim Windows 10Ruhestand war. Einige dieser Änderungen gelten weiterhin.
Ramhound
Windows 10 Pro ... zeigt keine genaue Versionsnummer in "Info" an, sondern erhält alle Push-Updates von MS ... einschließlich des großen August-Updates.
Jchwebdev
'Winver' ist gut zu wissen
Ramhound
Version 1607 Build 14393.321
jchwebdev

Antworten:

0

1) In .bateinigen 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:

ping 127.0.0.1 -n 123 > nul

Führen Sie dann die bat-Datei aus und sehen Sie in den Ausführungsprotokollen nach, was erfolgreich war und was nicht.

T.Todua
quelle
Kannst du genauer sein? Wo würde ich das ** in * ändern? und was ist der Zweck der Ping-Anweisung unten?
Jchwebdev