.CDA Não reconhece em arquivo de lote desde a atualização do Windows 10

0

Temos usado o seguinte arquivo em lote por -anos para ripar CDs de áudio (legais) para MP3s para nossos funcionários usarem em seus iPods. Mas desde o Windows 10 (Ver 1607 Build 14393.321) eles não funcionam mais. Eu acho - o problema é que, por qualquer motivo, o Windows não "vê" mais os arquivos CDA na unidade de disco (pelo menos na linha de comando). O Windows Media Player ainda reconhece a unidade e "Rip", mas isso é muito tedioso. Qualquer maneira de fazer esse arquivo BAT funcionar novamente?

O problema ocorre no loop FOR ... ou seja. a rotina sai imediatamente porque o loop não pode 'ver' nenhum arquivo CDA.


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

    
por jchwebdev 24.10.2016 / 19:02

1 resposta

0

1) Em .bat , em alguns casos, você deve usar %% em vez de um % .

2) Eu acho que o problema pode ser diferente. Você deve depurar o script - adicione esta linha na parte inferior:

ping 127.0.0.1 -n 123 > nul

e depois executar o arquivo bat, e ver os logs de execução, o que aconteceu com sucesso e o que não aconteceu.

    
por 24.10.2016 / 19:29