2013-04-01 2 views
0

Я написал установщик .hta на основе vbscript для автоматической установки PhoneGap/Cordova со всеми предпосылками (ant/jdk/bada sdk и т. д.). Его почти сделано, но я застрял в той части, где мне нужно напрямую загрузить JDK.Мне нужно установить jdk с помощью wget, я работаю в командной строке, но не в .hta файле

При копировании вставьте эту (длинную) строку в интерпретаторе команд, и она работает

wget --header "Cookie: gpw_e24=http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html;" ""http://download.oracle.com/otn-pub/java/jdk/7u17-b02/jdk-7u17-windows-i586.exe -O jdk.exe 

Он будет скачать JDK непосредственно, абсолютно нормально.

При вставке фрагмента кода в блокноте, например, и сохранить как .vbs и запустить его, то он не работает

Set objShell = CreateObject("WScript.Shell") 
objShell.CurrentDirectory = "c:\" 

'inQuotes function just puts quotes around the command parameters 
objShell.Run inQuotes(WorkingDir & "\wget.exe") & " " & " --header " & inQuotes("Cookie: gpw_e24=http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html; ") & "http://download.oracle.com/otn-pub/java/jdk/7u17-b02/jdk-7u17-windows-i586.exe" & " -O" & " " & inQuotes("jdk.exe"),1,True 


Function inQuotes(toQuote) 
    'return with quotes around the toQuote parameter 
    inQuotes = chr(34) & toQuote & chr(34) 
End Function 

Где-то в Teh линии objShell.Run есть проблема и Wget не загрузка jdk ... Поистине оцените любую помощь спасибо :)

ответ

1

Определяется ли ваша переменная WorkingDir? Если я ставлю одно эхо:

strCmd = inQuotes(WorkingDir & "\wget.exe") & " " & " --header " _ 
& inQuotes("Cookie: gpw_e24=http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html; ") _ 
& "http://download.oracle.com/otn-pub/java/jdk/7u17-b02/jdk-7u17-windows-i586.exe" & " -O" & " " & inQuotes("jdk.exe") 
WScript.Echo strCmd 

я получаю это:

"\wget.exe" --header "Cookie: gpw_e24=http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html; "http://download.oracle.com/otn-pub/java/jdk/7u17-b02/jdk-7u17-windows-i586.exe -O "jdk.exe" 

И это не переходит к исходной команде. Может быть, так будет?

strCmd = "wget.exe --header " _ 
& inQuotes("Cookie: gpw_e24=http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html;") _ 
& " " & chr(34) &chr(34) & "http://download.oracle.com/otn-pub/java/jdk/7u17-b02/jdk-7u17-windows-i586.exe" _ 
& " -O jdk.exe" 
WScript.Echo strCmd 
+0

спасибо за ваше время. Рабочая переменная работает правильно. я обнаружил, что скрипт работает, если я помещаю его в c: \ например, но не так, когда я помещаю его в папку с более длинным именем. в этом случае мой скрипт находился в папке d: \ savedfiles \ skydrive \ desktop \ phonegapinstaller, и оболочке THINK не удалось ее найти. поэтому я исправил его, используя. \ вместо рабочего каталога, и теперь он работает! MAGIC: D –