Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: dj kuzmar en 2 Febrero 2010, 19:07 pm



Título: encontrar posicion de valor en una cadena en batch
Publicado por: dj kuzmar en 2 Febrero 2010, 19:07 pm
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

Código:
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



Título: Re: encontrar posicion de valor en una cadena en batch
Publicado por: leogtz en 3 Febrero 2010, 01:49 am
A lo bruto:
Código:
@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:
Código:
for /f "tokens=*" %%_ in ('dir /b *.sql') do (
echo %%~n_
)