1 回答
TA贡献1818条经验 获得超3个赞
我想我为你找到了一些东西,我为你做了一些调整。快乐的脚本编写!
@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);
}
添加回答
举报