O arquivo song.mp3 está localizado em
C:\x-folders\y-folder\z-folder\song.mp3
Como posso armazenar esse caminho em uma variável?
C:\x-folders\y-folder\z-folder\
Obrigado
O arquivo song.mp3 está localizado em
C:\x-folders\y-folder\z-folder\song.mp3
Como posso armazenar esse caminho em uma variável?
C:\x-folders\y-folder\z-folder\
Obrigado
Respostas:
Existem algumas maneiras de fazer isso na linha de comando e eu colocarei duas que eu posso pensar abaixo para que você faça referência e teste quando tiver uma chance. Também incluirei recursos adicionais para estudos adicionais.
for %a in ("C:\x-folders\y-folder\z-folder\song.mp3") do set var=%~dpa
Então %var%
será a variável definida, então apenas faça referência %var%
ao valor aplicável.
Se você precisar percorrer alguma pasta com muitos .mp3
arquivos, poderá usar esta sintaxe
for /f "tokens=*" %a in ('dir /b "C:\SomeFolder\*.mp3"') do set var=%~fa\
Então %var%
será a variável definida, então apenas faça referência %var%
ao valor aplicável. Você pode fazer referência !var!
dessa forma se precisar EnableDelayedExpansion, dependendo do que exatamente você precisa realizar com o loop, se esta for a maneira que você planeja referenciar muitos arquivos e o caminho da pasta residente. Por fim, você também pode usar dir /s /b
para percorrer o diretório recursivamente.
Substituições variáveis (FOR /?)
Além disso, a substituição de referências de variáveis FOR foi aprimorada. Agora você pode usar a seguinte sintaxe opcional:
%~fI - expands %I to a fully qualified path name %~dI - expands %I to a drive letter only %~pI - expands %I to a path only
A Expansão atrasada fará com que as variáveis de um arquivo em lotes sejam expandidas no tempo de execução, e não no tempo de análise. Essa opção está ativada com o comando SETLOCAL EnableDelayedExpansion.
Quando a expansão atrasada está em vigor, as variáveis podem ser lidas imediatamente usando! Nome_da_variável! você também pode ler e usar% variable_name% que mostrará o valor inicial (expandido no início da linha).
FOR /?
saída, especialmente para%~dpI
.