Batch: listar nombres de archivos sin extensión
Resuelto
Perfil bloqueado
-
Tym -
Tym -
Hola,
intento hacer un batch que me permita listar los archivos de una carpeta en un archivo de texto y hacerlo sin su extensión.
Por el momento tengo un código que hace lo que quiero, solo que no sé cómo quitar la extensión de la lista creada.
Mi código actual:
echo off
dir .\dossier\*.ext /b /o n > liste.txt
Lo que en realidad lista los archivos cuya extensión es .ext contenidos en la carpeta "dossier" por orden alfabético en un archivo liste.txt
Entonces en resumen el contenido de liste.txt es el siguiente:
fichier1.ext
fichier2.ext
fichier3.ext
mientras que yo quisiera:
fichier1
fichier2
fichier3
Gracias de antemano por cualquier ayuda
intento hacer un batch que me permita listar los archivos de una carpeta en un archivo de texto y hacerlo sin su extensión.
Por el momento tengo un código que hace lo que quiero, solo que no sé cómo quitar la extensión de la lista creada.
Mi código actual:
echo off
dir .\dossier\*.ext /b /o n > liste.txt
Lo que en realidad lista los archivos cuya extensión es .ext contenidos en la carpeta "dossier" por orden alfabético en un archivo liste.txt
Entonces en resumen el contenido de liste.txt es el siguiente:
fichier1.ext
fichier2.ext
fichier3.ext
mientras que yo quisiera:
fichier1
fichier2
fichier3
Gracias de antemano por cualquier ayuda
Configuración: Pentium Core 2 Duo E6550 o/c @ 3.75GHz CM ASUS P5K CG Geforce 8800GTS 256Mb DDR3 2Go RAM Kingston HyperX PC2-8500 @ 1066MHz Caja Advance Turboost Black
4 respuestas
-
hola
también puedes usar la variable %~nI
for /F "delims=" %I in ('dir /b') do @echo %~nI -
Hola,
Es posible realizar esta operación de forma más elegante y, sobre todo, más segura:
@ECHO OFF
DEL liste.txt
FOR /F %%I IN ('DIR .\dossier\*.ext /B /O n') DO ECHO %%~nI >> liste.txt
De hecho, la opción de formato ~n permite obtener solo el nombre del archivo sin la extensión.
El problema del método anterior es que si el nombre del archivo contiene un "." (por ejemplo: "archivo.con.puntos.ext"), el nombre del archivo quedará truncado (solo quedará "archivo" en el ejemplo anterior).
Espero que esto sirva a alguien.
Cordialmente,
Tym -
Prueba esto
@echo off for /f "tokens=1 delims=." %%i in ('dir .\dossier\*.ext /b /o n') do echo %%i >liste.txt
¡Manténme informado!
Bilou.
--
Hay días en que no hay que buscarme.
Y hay días todos los días! -
Muchas gracias, después de un ligero ajuste obtuve lo que quería:
@echo off
del lista.txt
for /f "tokens=1 delims=." %%i in ('dir .\dossier\*.ext /b /o n') do echo %%i >>lista.txt
El código anterior listaba los archivos en lista.txt pero al escribir siempre sobrescribía, así que al final solo tenía un nombre en lista.txt (el último de la lista). Al usar >> en lugar de > tenía todos los nombres, pero si volvía a ejecutar el batch volvía a listar los archivos ya presentes, por eso el pequeño del que borra el fichero antes de crear uno nuevo.
Gracias de nuevo por tu ayuda valiosa.