首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建一个bat文件来下载一个程序,我找不到这个问题

创建一个bat文件来下载一个程序,我找不到这个问题
EN

Stack Overflow用户
提问于 2020-12-17 15:10:40
回答 1查看 152关注 0票数 1

说网址是错的,但在我看来是对的。我正在尝试从互联网下载一个文件,启动程序,然后在程序结束后删除程序。任何帮助都是很好的

过程将是

启动exe ->创建简单的下载程序->通过bat文件添加参数-->启动文件->等待进程结束-删除下载的文件我还没有添加等待进程和删除命令。

代码语言:javascript
复制
@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);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-22 19:26:42

我想我为你找到了一些东西,我为你做了一些调整。脚本编写愉快!

代码语言:javascript
复制
 @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);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65343334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档