gravar uma lista de arquivos em um arquivo de texto, mas não deseja o nome do diretório

0

Estou tentando escrever um programa em lote rápido que copie os nomes dos arquivos em uma pasta ou pasta e nas subpastas. O problema que estou tendo é: eu não quero os nomes dos diretórios.

Aqui está o meu código:

if %_JOB%! NEQ ! set _JOB=%_JOB%-
if %_FOLDERS%! == y! set _FOLDERS=Y

echo Created %cdate% > "C:\Users\%username%\Desktop\%_JOB%PDFlist.txt"
echo Folder: %CD% >> "C:\Users\%username%\Desktop\%_JOB%PDFlist.txt"
if %_FOLDERS%! == Y! (
  echo Include sub-folders: True >> "C:\Users\%username%\Desktop\%_JOB%PDFlist.txt"
) ELSE (
echo Include sub-folders: False >> "C:\Users\%username%\Desktop\%_JOB%PDFlist.txt"
)
echo. >> "C:\Users\%username%\Desktop\%_JOB%PDFlist.txt"
echo ============================== BEGIN LIST ============================== >> "C:\Users\%username%\Desktop\%_JOB%PDFlist.txt"
if %_FOLDERS%! == Y! (
  dir *.pDF /s /b /A-D-H >> "C:\Users\%username%\Desktop\%_JOB%PDFlist.txt"
) ELSE (
  dir *.pdf /b /A-D-H >> "C:\Users\%username%\Desktop\%_JOB%PDFlist.txt"
)
echo =============================== END LIST =============================== >> "C:\Users\%username%\Desktop\%_JOB%PDFlist.txt"
cls
echo.&echo List Generated!
echo.&echo.&ECHO.Press ANY key to EXIT and view your file
PAUSE>NUL
start notepad "C:\Users\%username%\Desktop\%_JOB%PDFlist.txt"
EXIT
    
por Chris 23.01.2013 / 23:19

1 resposta

0

Se você não recorre a subpastas, a opção de formato nu ( /b ) é suficiente. Se você recorrer com o mesmo switch, no entanto, você obtém o caminho completo.

Com as extensões de comando ativadas, você pode usar o seguinte para filtrar apenas os nomes dos arquivos:

for /f "delims=" %%F in ('dir *.pdf /s /b /A-D-H') do @echo %%~nxF

Veja help for para mais informações, mas o que o acima faz, é pegar a saída do comando dir … e para cada item então imprimir apenas o nome e a extensão (removendo a unidade e o caminho).

    
por 23.01.2013 / 23:39