Файл song.mp3 находится в
C:\x-folders\y-folder\z-folder\song.mp3
Как я могу сохранить этот путь в переменной?
C:\x-folders\y-folder\z-folder\
Спасибо
Файл song.mp3 находится в
C:\x-folders\y-folder\z-folder\song.mp3
Как я могу сохранить этот путь в переменной?
C:\x-folders\y-folder\z-folder\
Спасибо
Есть несколько способов сделать это из командной строки, и я приведу два, о которых я могу подумать ниже, чтобы вы могли обратиться к ним и проверить, когда у вас появится возможность. Я включу дополнительные ресурсы для дальнейшего изучения тоже.
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
для рекурсивного просмотра каталога.
Переменные замены (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%, которое покажет начальное значение (развернуто в начале строки).