Llevo un par de horas boludeando con un menu en ms-dos usando choice, pero llego el punto en el que para que el bat funcione integramente me usa demaciados exes externos, asi que decidi poner un .vbs que descargue todo lo necesario de mi ftp. El problema es que para que pongo un vbs para evitar tener que cargar el bat con exes de compania si eso requiere de un vbs con el bat, ¿alguno ejem edr ejem sabra como hacer para "embeber" el vbs en el bat? Anduve googleando un poco y todo lo que encontre es un post en el que no se explica un carajo de como funciona, y ya intente con echo texto>>archivo.vbs pero eso parece que me caga varias partes del vbs. El archivo en cuestion es esto: Código: dim xHttp: Set xHttp = createobject("Microsoft.XMLHTTP") dim bStrm: Set bStrm = createobject("Adodb.Stream") xHttp.Open "GET", "http://chatdelacueva.xtrweb.com/exes/wget.exe", False xHttp.Send with bStrm .type = 1 .open .write xHttp.responseBody .savetofile "wget.exe", 2 .close end with xHttp.Open "GET", "http://chatdelacueva.xtrweb.com/exes/7z.exe", False xHttp.Send with bStrm .type = 1 .open .write xHttp.responseBody .savetofile "7z.exe", 2 .close end with xHttp.Open "GET", "http://chatdelacueva.xtrweb.com/exes/choice.exe", False xHttp.Send with bStrm .type = 1 .open .write xHttp.responseBody .savetofile "choice.exe", 2 end with
Como es que el echo >> archivo te caga algo? Hacete una sección en el .bat onda :aux echo linea1 > archivo.vbs echo linea2 >> archivo.vbs - - - echo linean >> archivo.vbs goto inicio Acordate la primera linea va con un solo cocodrilo (xD!), porque uno solo te reemplaza el contenido del archivo, en cambio ya cuando pones doble 'greater-than' anexa al archivo la linea que sigue y asi.
No se bien porque pero el echo >> no escribe los numeros y ese vbs tiene un par de ellos, a menos que encuentre una forma de pasar por encima de eso hacer al bat escribir el documento no es una opcion.
Si no escribe numeros necesitas guardarlos en variables como letras y llamarlas con una funcion que las convierta a numeros.
Mirá lo hice asi nomas en el Notepad++, a mi me funcionó (el vbs de salida es exactamente igual al que pusiste) Código: echo dim xHttp: Set xHttp = createobject("Microsoft.XMLHTTP") > archivo.vbs echo dim bStrm: Set bStrm = createobject("Adodb.Stream") >> archivo.vbs echo xHttp.Open "GET", "http://chatdelacueva.xtrweb.com/exes/wget.exe", False >> archivo.vbs echo xHttp.Send >> archivo.vbs echo. >> archivo.vbs echo with bStrm >> archivo.vbs echo .type = 1 >> archivo.vbs echo .open >> archivo.vbs echo .write xHttp.responseBody >> archivo.vbs echo .savetofile "wget.exe", 2 >> archivo.vbs echo .close >> archivo.vbs echo end with >> archivo.vbs echo xHttp.Open "GET", "http://chatdelacueva.xtrweb.com/exes/7z.exe", False >> archivo.vbs echo xHttp.Send >> archivo.vbs echo. >> archivo.vbs echo with bStrm >> archivo.vbs echo .type = 1 >> archivo.vbs echo .open >> archivo.vbs echo .write xHttp.responseBody >> archivo.vbs echo .savetofile "7z.exe", 2 >> archivo.vbs echo .close >> archivo.vbs echo end with >> archivo.vbs echo. >> archivo.vbs echo xHttp.Open "GET", "http://chatdelacueva.xtrweb.com/exes/choice.exe", False >> archivo.vbs echo xHttp.Send >> archivo.vbs echo. >> archivo.vbs echo with bStrm >> archivo.vbs echo .type = 1 >> archivo.vbs echo .open >> archivo.vbs echo .write xHttp.responseBody >> archivo.vbs echo .savetofile "choice.exe", 2 >> archivo.vbs echo end with >> archivo.vbs
Lo unico que se me ocurre es que yo haya puesto "echo .savetofile "choice.exe", 2>> archivo.vbs" en ves de "echo .savetofile "choice.exe", 2 >> archivo.vbs" y eso haya afectado el resultado, igual gracias
Ah vos no dijiste que era por tu linea de comandos, obvio que lo afecta, 2 es el dispositivo estándar de error (stderr) lo que dice tu linea de comandos es basicamente: - Imprimi en pantalla la linea ".savetofile 'choice.exe', " - Si tenés algun error, guardamelo en archivo.vbs Con espacio lo solucionás como bien pusiste