Хорошо, я знаю, что часть цикла недействительна, но, надеюсь, поможет понять, что я хочу сделать. В конечном счете, я хочу получить подсказку для 3 значений (закомментировал запросы на данный момент и жесткое кодирование для простоты тестирования), затем я хочу, чтобы он проходил цикл один раз для каждого CD (так 8 раз в этом примере). Я хочу, чтобы он назвал файл .mp3 с увеличивающимся CD # ... CD1, CD2, CD3 и т.д. Если у кого-то есть улучшения, они тоже приветствуются! Я публикую свой полный код здесь, чтобы поделиться с сообществом.
@ECHO OFF
REM set /p BookName="Book Name: "
REM set /p AuthorName="Author Name: "
REM set /p CDNumber="Number of CDs: "
set BookName=Victory and Honor
set AuthorName=W.E.B. Griffin
set CDNumTot=8
set PathName=C:\Rip\%AuthorName%\%BookName%
mkdir "C:\Rip\%AuthorName%\%BookName%\"
REM cd C:\Program Files (x86)\freac
ECHO CD Count: %CDNumTot%
FOR /L %%N IN (1, 1, %CDNumTot%) DO (
Set FileName=%PathName%\%BookName% CD%%N.mp3
ECHO Filename: %FileName%
ECHO\
ECHO Ripping CD# %%N...
ECHO freaccmd -track all -o %FileName%
ECHO CLS
ECHO\
ECHO\
set /A NextCD=%%N
ECHO Next: %NextCD
ECHO Please Eject CD and insert next CD# %NextCD%...
pause
)
Окончательная версия этого кода (РАБОТАЕТ благодаря @JoeNahmias):
@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
set /p BookName="Book Name: "
set /p AuthorName="Author Name: "
set /p CDNumTot="Total number of CDs: "
set PathName=C:\Rip\%AuthorName%\%BookName%
FOR /L %%N IN (1, 1, %CDNumTot%) DO (
cls
ECHO\
ECHO Please insert CD# %%N...
ECHO\
pause
SET FileName=%PathName%\%BookName% CD%%N.mp3
cls
ECHO\
ECHO Ripping CD# %%N...
ECHO\
"C:\Program Files (x86)\freac\freaccmd" -track all -o "!FileName!"
REM You need the id3 executable downloaded/installed for the next line:
REM id3 -l "!BookName!" -a "!AuthorName!" -n %%N "!FileName!"
rundll32 user32.dll,MessageBeep -1
ECHO\
ECHO Please eject CD# %%N...
pause
)
cls
ECHO\
ECHO DONE!
pause