1

Файл song.mp3 находится в

C:\x-folders\y-folder\z-folder\song.mp3

Как я могу сохранить этот путь в переменной?

C:\x-folders\y-folder\z-folder\

Спасибо

1 ответ1

1

Есть несколько способов сделать это из командной строки, и я приведу два, о которых я могу подумать ниже, чтобы вы могли обратиться к ним и проверить, когда у вас появится возможность. Я включу дополнительные ресурсы для дальнейшего изучения тоже.

Пример первый

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
    
  • EnableDelayedExpansion

    Задержка расширения приведет к тому, что переменные в пакетном файле будут расширяться во время выполнения, а не во время анализа, эта опция включается командой SETLOCAL EnableDelayedExpansion.


    Когда действует отложенное расширение, переменные могут быть немедленно прочитаны с помощью!variable_name! вы также можете читать и использовать% variable_name%, которое покажет начальное значение (развернуто в начале строки).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .