escribir una lista de archivos en un archivo de texto pero no quiere el nombre del directorio

0

Estoy tratando de escribir un programa por lotes rápido que copie los nombres de los archivos en una carpeta o esa carpeta y las subcarpetas. El problema que tengo es: no quiero los nombres de directorio.

Aquí está mi 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
Chris
fuente

Respuestas:

0

Si no recurre a subcarpetas, entonces el cambio de formato simple ( /b) es suficiente. Sin embargo, si recurres con el mismo interruptor, obtienes la ruta completa.

Con las Extensiones de comando habilitadas, puede usar lo siguiente para filtrar solo los nombres de archivo:

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

Consulte help forpara obtener más información, pero lo que hace lo anterior es tomar el resultado del dir …comando y, para cada elemento, imprimir solo el nombre y la extensión (descartando efectivamente la unidad y la ruta).

mousio
fuente