Nuevas NORMAS para el foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - ſeptiembre 07, 2008, 01:39:46
Boton Buscar
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Batch (Moderadores: Espectro Infernal, The Shadow)  |  Tema: ayuda con el for 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: ayuda con el for  (Leído 237 veces)
alxspy
Recien Llegado
*
Desconectado Desconectado

Mensajes: 15


Ver Perfil Email
« en: Febrero 02, 2007, 09:08:40 »

hola amigos  tengo un problemilla como hago para que el for sustituya todos los espacios que haya en un texto por %  yo hice esto :
 set Palabra=%Palabra: = %
pero nada



for /f "tokens=*" %%a in (%file%.txt) do call :texto " %%a"
:texto
set Palabra=%1

set Palabra=%Palabra: = %




 cualquier ayuda sera bienvenida
salu2
En línea
iobh
Colaborador
*****
Desconectado Desconectado

Mensajes: 693


Odi Profanum Vulgus et Arceo


Ver Perfil
« Respuesta #1 en: Febrero 24, 2007, 04:43:26 »

OK, perdon por no responder antes :E

Bueno, te explico, en batch % es un simbolo muy compliacdo, te sugiero que utilizes otro como -, _, *, etc.

en el script que te pongo abajo use: _

 @echo off
set count=0
for /f "tokens=*" %%a in (file.txt) do call :texto "%%a"
echo El proceso finalizo correctamente.
pause>nul
exit

:texto
set text=%1
set text=%text:"=%
set text=%text: =_%
set /a count=%count%+1
IF %count% == 1 (
   echo %text%>file.txt
   goto :EOF
) else (
   echo %text%>>file.txt
   goto :EOF
)

Cualquier duda aqui estare.

Salu2
En línea

"No entiendes realmente algo a menos que seas capaz de explicarselo a tu abuela."

-Albert Einstein

ven0m
Colaborador
*****
Desconectado Desconectado

Mensajes: 781


Christina...Eat me, drink me...

x_0@hotmail.de
Ver Perfil Email
« Respuesta #2 en: Febrero 25, 2007, 05:28:48 »

uffff hahah por fin entendi este comando for.. ufffffff como 3 semanas ya llevaba sin entender ni una wea pero weno... gracias iobh por esa explicacion  briago brindis brindis briago

salud0s
En línea

R-E-S-P-E-C-T, find out what it means to me


Christina..Christina..Brak mi ciebie moj EMO-Princesa..BARDZO CIE KOCHAM!!!
NumaH
Miembro
*****
Desconectado Desconectado

Mensajes: 126


Ver Perfil
« Respuesta #3 en: Febrero 25, 2007, 08:08:14 »

En línea
iobh
Colaborador
*****
Desconectado Desconectado

Mensajes: 693


Odi Profanum Vulgus et Arceo


Ver Perfil
« Respuesta #4 en: Febrero 26, 2007, 09:46:27 »

call es un comando que "llama" a ejecutarse una seccion o un archivo externo.

en este caso llamamos la la seccion :texto
esto ejecutara toda esa seccion hasta goto :EOF

lo de set text=%1
es que cuando se usa call desde for, Las variables %%a, %%b, %%c,etc pasan a %1, %2, %3, etc.

pero tambien si haces este archivo guardalo en escritorio:

 @echo off
set command=%1
echo hola %command%
pause>nul
exit

ejecuta CMD y anda a Escritorio o el directorio donde esta el programa, y escribe:

programa palabra

o

programa.bat palabra

Salu2
En línea

"No entiendes realmente algo a menos que seas capaz de explicarselo a tu abuela."

-Albert Einstein

Zilec
Miembro
*****
Desconectado Desconectado

Mensajes: 91


Mi complejo de superioridad es mejor que el tuyo


Ver Perfil Email
« Respuesta #5 en: Febrero 26, 2007, 11:34:05 »

disculpa iobh


para que sirve esto :

set text=%text:"=%

el comando set lo entiendo lo que no entiendo es esta parte "=% Sad

te agradeceria la explicacion
En línea


Tu firma incumplia las normas del foro y ha sido modificada.

Programador -Zilec-
iobh
Colaborador
*****
Desconectado Desconectado

Mensajes: 693


Odi Profanum Vulgus et Arceo


Ver Perfil
« Respuesta #6 en: Febrero 26, 2007, 11:51:04 »

Eso lo explique en el tutorial de set, pero debe estar medio perdido

lo que hace es "remplazar" todas las " por nada

mas ejemplos:
set var=%var:a=1%                ::Cambia todas las letras a por 1 de la variable var
set var=%var:j=2%                  ::Cambia todas las letras j por 2 de la variable var
set var=%var: =_%                  ::Cambia todos los espacios " " por _ de la variable var.

etc.

Salu2
En línea

"No entiendes realmente algo a menos que seas capaz de explicarselo a tu abuela."

-Albert Einstein

Theteam
Colaborador
*****
Desconectado Desconectado

Mensajes: 432



Ver Perfil
« Respuesta #7 en: Febrero 26, 2007, 03:56:40 »

perdon por poner aca, pero no quiero llenar el subforo de temas en el que se pregunte por este comando.

me surgio un problema, tengo un archivo en un directorio especifico. esta info la tengo en un txt.
y necesito sacar solo el nombre del archivo. el problema es que no tengo la cantidad de caracteres que tiene el nombre, ni la cantidad de subcarpetas en el que se encuentra.

no se si me doy a entender. pero por ejemplo en el txt puedo tener:

c:\hola.jpg      o       c:\dir1\dir2\dir3\holagil.jpg

esto lo digo porque si supiese la cantidad de letras del archivo se podria hacer, y lo mismo si tengo la cantidad de directorios.
intente usar con el tokens, pero no se como hacer para que me tome el ultimo valor.

a alguien se le ocurre como hacer??
En línea



Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion


Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion


Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion
asf_oxid
Habitual
*****
Desconectado Desconectado

Mensajes: 255


asf_oxid@hotmail.com
Ver Perfil Email
« Respuesta #8 en: Febrero 27, 2007, 10:03:41 »

En línea

....saludos desde barna
asf_oxid
Habitual
*****
Desconectado Desconectado

Mensajes: 255


asf_oxid@hotmail.com
Ver Perfil Email
« Respuesta #9 en: Febrero 27, 2007, 10:31:49 »

perdon por poner aca, pero no quiero llenar el subforo de temas en el que se pregunte por este comando.

me surgio un problema, tengo un archivo en un directorio especifico. esta info la tengo en un txt.
y necesito sacar solo el nombre del archivo. el problema es que no tengo la cantidad de caracteres que tiene el nombre, ni la cantidad de subcarpetas en el que se encuentra.

no se si me doy a entender. pero por ejemplo en el txt puedo tener:

c:\hola.jpg      o       c:\dir1\dir2\dir3\holagil.jpg

esto lo digo porque si supiese la cantidad de letras del archivo se podria hacer, y lo mismo si tengo la cantidad de directorios.
intente usar con el tokens, pero no se como hacer para que me tome el ultimo valor.

a alguien se le ocurre como hacer??
podrias utilizar la info de el comando dir volcada en un txt extraer esa info mediante el for y darle un valor a una variable llamada archivo y a otra llamada variable q despues sera usada para aplicarla dentro de un in de un for   que esta dentro de un bucle , asi obtendriaas una busqueda por cada archivo que existiera ,... me tengo q ir despues te lo detallo...
En línea

....saludos desde barna
Theteam
Colaborador
*****
Desconectado Desconectado

Mensajes: 432



Ver Perfil
« Respuesta #10 en: Marzo 05, 2007, 09:48:58 »

a ver, se me ocurrio esto, pero no me funca, supongo que vos proponias algo asi asf_oxid

les paso el code a ver si encuentran donde esta el error:

:1
for /f "delims=\ tokens=1*" %%a in (dir.txt) do call :proceso %%b

:proceso
set e=%1
if %e%==ECHO est  activado. (goto :fin) else (echo %e%> dir.txt & goto :1)
goto :eof

lo del if lo puse porque al agarrar la segunda parte, cuando no hay segunda parte, en el txt pone "ECHO est  activado."

alguien encuentra el error? estoy seguro que algo hice mal
« Última modificación: Marzo 05, 2007, 09:49:45 por Theteam » En línea



Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion


Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion


Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion
Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Batch (Moderadores: Espectro Infernal, The Shadow)  |  Tema: ayuda con el for « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.5 | SMF © 2006-2007, Simple Machines LLC