Есть несколько способов сделать это из командной строки, и я приведу два, о которых я могу подумать ниже, чтобы вы могли обратиться к ним и проверить, когда у вас появится возможность. Я включу дополнительные ресурсы для дальнейшего изучения тоже.
Пример первый
for %a in ("C:\x-folders\y-folder\z-folder\song.mp3") do set var=%~dpa
Тогда %var%
будет задана переменная, так что просто обратитесь %var%
к применимому значению.
Пример второй
Если вам нужно перебрать какую-то папку со многими .mp3
файлами, вы можете использовать этот синтаксис
for /f "tokens=*" %a in ('dir /b "C:\SomeFolder\*.mp3"') do set var=%~fa\
Тогда %var%
будет задана переменная, так что просто обратитесь %var%
к применимому значению. Вы можете ссылаться !var!
на это, если вам нужно включить EnableDelayedExpansion в зависимости от того, что именно вам нужно сделать с помощью цикла, если вы планируете ссылаться на многие файлы и путь к их расположению в папке. Наконец, вы также можете использовать dir /s /b
рекурсивный просмотр каталога.
Дополнительные ресурсы
- Dir
-
Переменные замены (FOR /?)
Кроме того, была улучшена замена ссылок на переменные FOR. Теперь вы можете использовать следующий необязательный синтаксис:
%~fI - expands %I to a fully qualified path name %~dI - expands %I to a drive letter only %~pI - expands %I to a path only
-
Задержка расширения приведет к тому, что переменные в пакетном файле будут расширяться во время выполнения, а не во время анализа, эта опция включается командой SETLOCAL EnableDelayedExpansion.
Когда действует отложенное расширение, переменные могут быть немедленно прочитаны с помощью! Variable_name! вы также можете читать и использовать% variable_name%, которое покажет начальное значение (развернуто в начале строки).