Hola Amigos hoy tengo una duda...
Tengo una base de datos Llamada clientes.txt
En Clientes tengo lo siguiente
------------------------------------
cliente:Perico Los palotes -
direccion:Angeles 14 -
numero: 1234567 -
comprasRecientes: Pantalon -
talla : 46 -
sexo : M -
------------------------------------
Esa es mi base de datos...
ahora de esa base de datos yo quiero obtener solo la linea de que dice 'Cliente'
(Es la primera) Pero si yo quiero buscar una palabre clave dentro de mi BD como lo ago?
@echo off
:menu
cls
echo 1.- Agregar Cliente
echo 2.- Buscar dentro de la BD
set /p o=Elija una opcion :
if not defined o goto menu
if %o%==1 (goto add)
if %o%==2 (goto b) else (goto menu)
:add
set /p name= Nombre de cliente :
set /p dire=Direccion :
set /p n= Numero:
set /p c= Compras Recientes :
set /p t= Talla :
set /p s= Sexo:
echo %name%>>%windir%\clientes.txt
echo %dire%>>%windir%\clientes.txt
echo %n%>>%windir%\clientes.txt
echo %c%>>%windir%\clientes.txt
echo %t%>>%windir%\clientes.txt
echo %s%>>%windir%\clientes.txt
echo Generado Correctamente
pause
goto menu
:b
cls
set /p bo= Que desea buscar dentro de la DB :
rem ahora no se como hacerlo para buscar y almacenar dentro de una variable
rem agamos que busco talla : 46
if %variable%==%bo% (goto find) else (goto not)
:find
cls
echo Se encontro el resultado final
pause
goto menu
:not
cls
echo No encontrado
pause
goto menu
type "clientes.txt" | findstr "^cliente"
type "clientes.txt" | find "clientes"
Cita de: Leo Gutiérrez. en 29 Octubre 2011, 06:47 AM
type "clientes.txt" | findstr "^cliente"
type "clientes.txt" | find "clientes"
Me Podrias explicar el primer code por que lleva ^ ?
Otra Cosa Leo Como lo ago para Almacenar lo encontrado en una variable???
^ representa el inicio de cadena.
Como queremos checar la cadena que empiece por clientes, añadimos ^ antes de la palabra "clientes."
Para la segunda duda (No probado).
setlocal enabledelayedexpansion
for /f "tokens=*" %%_ in ('type "clientes.txt" ^| findstr "^cliente"') do (
set "valor=%%_"
echo El valor es : !valor!
)
http://es.wikipedia.org/wiki/Expresi%C3%B3n_regular
Lo mejor que puedes hacer para trabajar con "bases de datos" planas, es trabajarlas con puntos y comas ( ; ) como separadores, como los archivos.csv
Por ejemplo
cliente;direccion;numero;compra:talla
perico;su casa;14;pantalon;25
Y los puedes identificar por ejemplo añadiendo un correlativo al principio o algo así, para que el programa no se confunda cuando hayan clientes con el mismo nombre. o cuando se repita algun dato, porque mas de alguna vez te puede pasar, y batch solo buscara hasta la primera coincidencia.
Eso saludos :D
Muchas Gracias Amigos Tema Solucionado....