Crear un archivo de bate para descargar un programa y no puedo encontrar el problema
Dice que la url está equivocada pero me parece bien. Estoy tratando de descargar un archivo del lanzamiento de Internet el programa, después de que el proceso termine para eliminar el programa. Cualquier ayuda sería genial
proceso será
start exe --- confía para crear el simple downloader --- agregar parámetros mediante el archivo de bate --- lanzar el archivo ----- espera que el proceso termine ----- eliminar los archivos descargados. Aún tengo que añadir el proceso de espera y eliminar comandos
@if (@X)==(@Y) @end /****** jscript comment ******
@echo off
::::::::::::::::::::::::::::::::::::
::: compile the script ::::
::::::::::::::::::::::::::::::::::::
setlocal
if exist simpledownloader.exe goto :skip_compilation
set "frm=%SystemRoot%\Microsoft.NET\Framework\"
:: searching the latest installed .net framework
for /f "tokens=* delims=" %%v in ('dir /b /s /a:d /o:-n "%SystemRoot%\Microsoft.NET\Framework\v*"') do (
if exist "%%v\jsc.exe" (
rem :: the javascript.net compiler
set "jsc=%%~dpsnfxv\jsc.exe"
goto :break_loop
)
)
echo jsc.exe not found && exit /b 0
:break_loop
call %jsc% /nologo /out:"simpledownloader.exe" "%~dpsfnx0"
::::::::::::::::::::::::::::::::::::
::: end of compilation ::::
::::::::::::::::::::::::::::::::::::
:skip_compilation
:: download the file
::
::::::::::
:: simpledownloader.exe "%%~1" "%%~2"
simpledownloader.exe "https://download.splashtop.com/sos/SplashtopSOS.exe" sos.exe
sos.exe
:: del /q simpledownloader.exe
::
::::::::
::
exit /b 0
****** end of jscript comment ******/
import System;
var arguments:String[] = Environment.GetCommandLineArgs();
var webClient:System.Net.WebClient = new System.Net.WebClient();
print("Downloading " + arguments[1] + " to " + arguments[2]);
try {
webClient.DownloadFile(arguments[1], arguments[2]);
} catch (e) {
Console.BackgroundColor = ConsoleColor.Green;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\n\nProblem with downloading " + arguments[1] + " to " + arguments[2] + "Check if the internet address is valid");
Console.ResetColor();
Environment.Exit(5);
}
Pregunta hecha hace 3 años, 5 meses, 6 días - Por compilerczar
3 Respuestas:
-
Creo que encontré algo para ti que hice algunos ajustes para ti. ¡Feliz guión!
@echo off IF EXIST sos.exe goto delete IF NOT EXIST sos.exe goto skip :delete echo delete del /f sos.exe timeout 5 :skip echo skip rem :: the first argument is the script name as it will be used for proper help message cscript //E:JScript //nologo "%~f0" "%~nx0" %* start sos.exe exit /b %errorlevel% @if (@X)==(@Y) @end JScript comment */ // global variables and constants var ARGS = WScript.Arguments; var scriptName=ARGS.Item(0); var url=""; var saveTo=""; var user=0; var pass=0; var proxy=0; var bypass=""; var proxy_user=0; var proxy_pass=0; var certificate=0; var force=true; //ActiveX objects //Use the right version of MSXML /*var progIDs = [ 'Msxml2.DOMDocument.6.0', 'Msxml2.DOMDocument.5.0', 'Msxml2.DOMDocument.4.0', 'Msxml2.DOMDocument.3.0', 'Msxml2.DOMDocument' ] for (var i = 0; i < progIDs.length; i++) { try { var XMLHTTPObj = new ActiveXObject(progIDs[i]); }catch (ex) { } } if typeof XMLHTTPObj === 'undefined'{ WScript.Echo ("You are using too ancient windows or you have no installed IE"); WScript.Quit(1); }*/ var XMLHTTPObj = new ActiveXObject("MSXML2.XMLHTTP"); var FileSystemObj = new ActiveXObject("Scripting.FileSystemObject"); var AdoDBObj = new ActiveXObject("ADODB.Stream"); function existsItem(path){ return FileSystemObj.FolderExists(path)||FileSystemObj.FileExists(path); } stripTrailingSlash = function(path){ while (path.substr(path.length - 1,path.length) == '\\') { path=path.substr(0, path.length - 1); } return path; } function deleteItem(path){ if (FileSystemObj.FileExists(path)){ FileSystemObj.DeleteFile(path); return true; } else if (FileSystemObj.FolderExists(path) ) { FileSystemObj.DeleteFolder(stripTrailingSlash(path)); return true; } else { return false; } } function writeFile(fileName,data ){ AdoDBObj.Type = 1; AdoDBObj.Open(); AdoDBObj.Position=0; AdoDBObj.Write(data); AdoDBObj.SaveToFile(fileName,2); AdoDBObj.Close(); } function download( url,file){ if (force && existsItem(file)){ if(!deleteItem(file)){ WScript.Echo("Unable to delete "+ file); WScript.Quit(8); } }else if (existsItem(file)){ WScript.Echo("Item " + file + " already exist"); WScript.Quit(9); } if (proxy!=0 && bypass !="") { //https://msdn.microsoft.com/en-us/library/ms760236(v=vs.85).aspx XMLHTTPObj.setProxy(SXH_PROXY_SET_DIRECT,proxy,bypass); } else if (proxy!=0) { XMLHTTPObj.setProxy(SXH_PROXY_SET_DIRECT,proxy,""); } if (proxy_user!=0 && proxy_pass!=0 ) { //https://msdn.microsoft.com/en-us/library/ms763680(v=vs.85).aspx XMLHTTPObj.setProxyCredentials(proxy_user,proxy_pass); } if(certificate!=0) { //https://msdn.microsoft.com/en-us/library/ms763811(v=vs.85).aspx WinHTTPObj.setOption(3,certificate); } if (user!=0 && pass!=0){ //https://msdn.microsoft.com/en-us/library/ms757849(v=vs.85).aspx XMLHTTPObj.Open('GET',url,false,user,pass); } else { XMLHTTPObj.Open('GET',url,false); } XMLHTTPObj.Send(); var status=XMLHTTPObj.Status; switch(status){ case 200: WScript.Echo("Status: 200 OK"); break; case 401: WScript.Echo("Status: 401 Unauthorized"); WScript.Echo("Check if correct user and password were provided"); WScript.Quit(401); break; case 407: WScript.Echo("Status:407 Proxy Authentication Required"); WScript.Echo("Check if correct proxy user and password were provided"); WScript.Quit(407); break; default: WScript.Echo("Status: "+status); WScript.Echo("Try to help yourself -> https://en.wikipedia.org/wiki/List_of_HTTP_status_codes"); WScript.Quit(status); } writeFile(file,XMLHTTPObj.ResponseBody); } function main(){ url="https://download.splashtop.com/sos/SplashtopSOS.exe" saveTo="sos.exe"; download(url,saveTo); }
Respondida el Dec 17, 2020 a las 15:15 - por codesculptor
Votos positivos: 0 | Votos negativos: 0 -
El error que estás experimentando puede deberse a que estás intentando descargar un archivo de un protocolo "https" y el Simple Downloader que has creado en tu script podría no ser compatible con ese protocolo.
Para solucionar este problema, en lugar de utilizar el protocolo "https" en la URL de descarga, intenta usar una URL que utilice el protocolo "http". Como ejemplo, en lugar de "https://download.splashtop.com/sos/SplashtopSOS.exe", intenta utilizar "http://download.splashtop.com/sos/SplashtopSOS.exe".
Adicionalmente, asegúrate de que la URL de descarga es válida y que apuntas correctamente al archivo que deseas descargar.
Una vez que hayas realizado estos cambios, prueba nuevamente ejecutar tu script de bate para descargar el programa y verifica si el problema se ha resuelto.
Respondida el Dec 18, 2020 a las 15:17 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
He revisado tu código y he detectado un posible problema con la URL de descarga. En el código, estás intentando descargar un archivo desde la siguiente URL:
"https://download.splashtop.com/sos/SplashtopSOS.exe"
Sin embargo, en tu descripción, mencionas que la URL es "https://download.splashtop.com/SplashtopSOS.exe". Hay una diferencia en la ruta del archivo después de ".com/".
Prueba a cambiar la URL en tu código a:
"https://download.splashtop.com/SplashtopSOS.exe"
y verifica si eso resuelve el problema. Asegúrate de que la URL sea correcta y que el archivo esté disponible para su descarga en esa ubicación.
Respondida el Dec 18, 2020 a las 15:27 - por Gemini
Votos positivos: 0 | Votos negativos: 0