Я предлагаю использовать для этой задачи следующий пакетный файл:
@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "LyndaAppFolder=%LocalAppData%\lynda.com\Lynda.com Desktop App"
set "CoursesFolder=%LyndaAppFolder%\offline\ldc_dl_courses"
for /D %%I in ("%CoursesFolder%\*") do if /I not "%%I" == "%CoursesFolder%\mp4" LyndaDecryptor.exe /D "%%I" /DB "%LyndaAppFolder%\db.sqlite" /OUT "%CoursesFolder%\mp4"
endlocal
Для меня неясно, является ли mp4
в папке курсов папкой или файлом. Я полагаю, что это папка, которую следует пропустить при обработке всех не скрытых подпапок в папке курсов, что является причиной дополнительного нечувствительного к регистру условия IF .
Команда FOR ищет из-за /D
нескрытых каталогов в указанном каталоге, соответствующих шаблону с подстановочными знаками *
, и присваивает имя найденному каталогу с полным путем без окружающих двойных кавычек переменной цикла I
. Имя найденного каталога будет присвоено переменной цикла I
без пути, если в круглых скобках будет использоваться только *
, поскольку текущий каталог является каталогом, содержащим каталоги курсов.
Я полагаю, что LyndaDecryptor
- это исполняемый файл с расширением файла .exe
, к которому добавлено расширение файла в последней, кроме одной командной строке. Лучше всего было бы указать LyndaDecryptor
с полным путем и с расширением файла, так как в этом случае интерпретатор команд Windows не должен искать исполняемый файл или скрипт с таким именем файла на каждой итерации цикла.
Чтобы понять используемые команды и то, как они работают, откройте окно командной строки, выполните там следующие команды и полностью прочитайте все страницы справки, отображаемые для каждой команды.
echo /?
endlocal /?
for /?
if /?
set /?
setlocal /?
См. Также статью в Википедии о Переменные среды Windows для предопределенной переменной среды LOCALAPPDATA
, используемой в пакетном файле с использованием нотации CamelCase для лучшей читаемости, поскольку переменные среды не чувствительны к регистру в Windows по сравнению с FOR переменные цикла, которые чувствительны к регистру.