Não estou obtendo caminhos completos na variável @relpath
.
also I am getting quotes in the result lines, which I want to remove.
O arquivo de lote a seguir faz o que você deseja:
@echo off
setlocal enableDelayedExpansion
for /f %%G in ('forfiles /s /m *.phtml /c "cmd /c echo @path"') do (
set _name=%%G
rem strip the quotes
echo !_name:~1,-1! >> listoffiles.txt
)
endlocal
exit
Notas:
- Usa
@path
(caminho completo do arquivo) em vez de@relpath
(caminho relativo do arquivo). - Usa uma variável
substring
expression para remover as aspas (:~1,-1
remove o primeiro e o último caractere da variável string). - Usa
setlocal EnableDelayedExpansion
para que as variáveis sejam atualizadas corretamente no loopfor
.
Leitura Adicional
- Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
- enabledelayedexpansion - Expansão com atraso fará com que as variáveis sejam expandidas em tempo de execução e não no tempo de análise.
- para / f - Comando Loop contra os resultados de outro comando.
- forfiles - Selecione um arquivo (ou conjunto de arquivos) e execute um comando em cada arquivo. Processamento em lote.
- variáveis - Extrai parte de uma variável (substring).