[BATCH-VBS]Pasar datos desde Batch A VBS.

Iniciado por FranciskoAsdf, 14 Abril 2011, 20:57 PM

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

FranciskoAsdf

Estimados, espero no molestar, pero quisiera saber como puedo pasar una lista como la siguiente a un MSGBOX en .VBS

Des_Proveedor 
ABASTECEDORA DEL COMERCIO LTDA. 
AGROSUPER COMERCIALIZ.DE ALIMENTOS 
ALIMENTOS Y FRUTOS S.A. 
CECINAS CHILLAN LTDA. 
CERVECERA CCU CHILE LTDA 
CMPC TISSUE S.A. 
COMERCIAL CCU S.A 
COMERCIAL SANTA ELENA S.A. 
DISTRIBUIDORA SAN MIGUEL DE ARICA 
EMBOTELLADORA CHILENAS UNIDAS S.A 
EVERCRISP SNACK PROD.CHILE.SA. 
MASTERFOODS CHILE LTDA. 
MOLINERA TEMUCO SCHEID LTDA. 
NESTLE CHILE S.A. 
PORTAL DEL SUR LIMITADA 
PRODUCTOS FERNANDEZ S A 
PROMASA      LTDA 
RABIE S.A. 
RODOLFO HARWARDT RABENKO 
SANTA CRUZ . 
SOC.INVERSIONES LA MUNDIAL LTD 
SURLAT INDUSTRIAL S.A. 
UNILEVER CHILE S.A. 
VINA SAN PEDRO TARAPACA S.A 
SOC.LACTEOS TINGUIRIRICA LTDA. 


La lista NUNCA va a ser la misma.

Esperando me puedan ayudar, me despide agradeciendo de ante mano cualquier ayuda :)
Asdf debería ser algún tipo de función.

Novlucker

No entendí, el msgbox tiene que mostrar la lista completa o como es el tema?

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

FranciskoAsdf

#2
Tiene que mostrar la lista completa, y cuando escribo "nunca va a ser la misma", me refiero a que a veces va a ser mas larga y otras mas corta XD!

Asdf debería ser algún tipo de función.

klaine

A ver si entendí, ¿lo que quieres es concatenar saltos de línea?

msgbox ("linea 1"&vbcrlf&"linea2")

Lo que no entiendo es que monos pintaría batch akí  :xD si pudieras explicar un poko mejor lo que necesitas...

Saludos  ;)

FranciskoAsdf

Lo que pasa es que con batch genero un archivo .TXT con un lista con datos como los del ejemplo, entonces quiero saber como enviar la lista a un MSGBOX en vez de a un archivo txt, ahora si xDD??!!.


Saludos y gracias por leer ^^
Asdf debería ser algún tipo de función.

klaine

#5
tendrías que concatenar eso linea por linea en tu batch y tener un script (vbs )como este:

Código (vb) [Seleccionar]


select case wscript.arguments(0)
case "/?"
call help
case else
call selmsg
end select

sub selmsg

dim c
c=0

for each var in wscript.arguments
c = c + 1
next

select case c

case 1
call msg1
case 2
call msg2
case 3
call msg3

end select

end sub

sub msg1
msgbox wscript.arguments(0)
end sub

sub msg2

dim icon
icon = 0

select case wscript.arguments(1)

case 0
icon = 0
case 1
 icon = vbcritical
case 2
icon = vbinformation
case 3
icon = 48
case 4
icon = vbquestion
end select

msgbox wscript.arguments(0), icon
end sub

sub msg3

dim icon
icon = 0

select case wscript.arguments(1)

case 0
icon = 0
case 1
 icon = vbcritical
case 2
icon = vbinformation
case 3
icon = 48
case 4
icon = vbquestion
end select

msgbox wscript.arguments(0), icon, wscript.arguments(2)
end sub

sub help
wscript.echo "Uso:"
wscript.echo "Cscript /nologo msg.vbs [Mensaje] [Tipo] [Titulo]"
wscript.echo "[Mensaje]: Prompt para el cuadro de dialogo"
wscript.echo "[Tipo]: Tipo de icono "
wscript.echo "0 - Sin icono"
wscript.echo "1 - Error"
wscript.echo "2 - Informacion"
wscript.echo "3 - Advertencia"
wscript.echo "4 - Pregunta"
wscript.echo "Para pasar un argumento, el argumento anterior debe ser declarado,"
wscript.echo "por ejemplo, si se pone un icono y se omite el Mensaje"
wscript.echo "el mensaje sera la opcion ingresada para el icono"
wscript.echo ""
end sub


Luego lo llamas así en tu batch o si kieres desde la cmd:

Código (dos) [Seleccionar]

cscript /nologo <ruta_del_archivo>.vbs <argumento_1> <argumento_2> <argumento_3>


Concatenas la variable en batch o cmd como dije anteriormente y se lo pasas como el segundo argumento al script.vbs

Ahora ¿como concatenar saltos de línea en batch? ni idea  :xD , pero algo es algo

Saludos  ;)

PD1: Puedes consular el uso con cscript /nologo script.vbs /?


PD2: Este tipo de cosas (y muchas más) aprendes con el manual de vbs de novlucker.

FranciskoAsdf

Muchas gracias por la guía, vamos a ver si me funciona, pero igual gracias por el tiempo xDD!!

Saludos :)
Asdf debería ser algún tipo de función.

Novlucker

Creo que si la mayoría lo estas haciendo desde batch, entonces deberías de hacer algo como esto
Código (dos) [Seleccionar]
@echo off
for /f "tokens=*" %%i in ('dir /b') do (echo e=e^&"%%i"^&vbnewline >> %temp%\s.vbs)
echo msgbox e>> %temp%\s.vbs
start /w %temp%\s.vbs
del %temp%\s.vbs


Esto es solo un ejemplo en el cual se muestran los archivos y directorios del path actual, tu tendrías tu lista en lugar de eso.

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

FranciskoAsdf

Modifiqué el code de Nov y me funcionó a la perfección xD, era mucho mas fácil de lo que me decía Klaine xDDD.


Muchas gracias de nuevo por la ayuda :)

PD: como puedo colocarle el icono de información al Mensaje?, se que es con vbInformation, pero no se donde colocarlo, porque los otros mensajes que tengo diferentes xDDD.

En fin gracias de nuevo ;D!!
Asdf debería ser algún tipo de función.

Novlucker

#9
Es que klaine proponía crear un vbs reutilizable para mostrar los mensajes pasados por parámetros, el que dejé es más sencillo porque creamos el vbs en cada ejecución :P

Código (dos) [Seleccionar]
echo msgbox e,64>> %temp%\s.vbs

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein