Hola amigos tengo el siguiente problema, tengo una lista de archivos con extensión sql, por ejemplo 1.sql, 2.sql, prueba.sql, almaceno todo esto con un dir/b > lista.txt, dentro de un for voy leyendo uno a unos los archivos
FOR /F %%i in (lista.txt) do (
echo !i!
lo que necesito es solo el nombre del archivo sin la extension
por ejemplo que muestre asi
1
2
prueba
estuve haciendo pruebas con
echo %i:~0,1%
tambien echo %i:~-3% con esto logro que me muestre sql
como pudeo saber donde esta ".sql" en este ejemplo
prueba.sql esta en la posicion 7 entonces si hago echo %i:~0,6% me mostraria
prueba, es lo que necesito , encontrar "." y luego restarle uno a la posicion y que me muestre todo
A lo bruto:
@echo off
for %%_ in (*.sql) do (
for /f "tokens=1 delims=." %%} in ("%%_") do (
echo %%}
)
)
rem tokens=2 -> Te da la extension
Lo más eficiente:
for /f "tokens=*" %%_ in ('dir /b *.sql') do (
echo %%~n_
)