2014-09-02 48 views
1

我是相當新的JavaScript和衛生技術評估,但這裏是我到目前爲止有:啓動的VBScript從HTA和傳遞變量

<HTML> 
    <HEAD> 
    <title>Create Drive</title> 
    <HTA:APPLICATION 
    APPLICATIONNAME="CreateDrive" 
    VERSION="1.0" 
    SINGLEINSTANCE="yes"/> 
    <SCRIPT language="JavaScript"> 
    window.resizeTo(400,300) 
     function WriteFile() { 
     var fso = new ActiveXObject("Scripting.FileSystemObject"); 
     var fh = fso.CreateTextFile("output.txt", true); 
     fh.WriteLine(userinfo.UN.value + ' ' + userinfo.FN.value + ' ' + userinfo.LN.value); 
     fh.Close(); 
     } 
    </SCRIPT> 
    </HEAD> 
    <BODY> 
    <FORM name="userinfo"> 
     <P>User Name: <INPUT name="UN" type="text"></P> 
     <P>First Name: <INPUT name="FN" type="text"></P> 
     <P>Last Name: <INPUT name="LN" type="text"></P> 
     <P><INPUT type="button" value="Create Drive" onclick="WriteFile();"></P> 
    </FORM> 
    </BODY> 
</HTML> 

我的目標是要利用這個HTA來創建新的用戶帳戶的網絡驅動器。以前,要做到這一點,使用了蝙蝠是引用的VBScript和用戶輸入這是一起該.vbs通過三個值(用戶,第一,和姓)和創建的驅動器:

cscript /nologo newdrive.vbs q:\users\%1 /DFS:yes /server:server1 /server2:server2 /userfirstname:%2 /userlastname:%3 /quiet:no 

我想直接從我的HTA訪問這個VBScript並傳遞UN,FN和LN的值。我目前將輸入的值保存到一個文本文件中,但是我很感謝有關完成這個更好方法的任何信息。

感謝您的協助。

回答

0

我在本例中使用VBScript。但是,您可以在JavaScript中輕鬆完成此操作。

Sub WriteFile() 

    ' Retrieve the form values to be passed as args... 
    a1 = userinfo.UN.value 
    a2 = userinfo.FN.value 
    a3 = userinfo.LN.value 

    With CreateObject("WScript.Shell") 

     ' Run the script, passing along the form values... 
     .Run "wscript.exe newdrive.vbs " & a1 & " " & a2 & " " & a3 

    End With 

End Sub 

在你newdrive.vbs腳本時,可以使用WScript.Arguments集合檢索這些值:

strUser = WScript.Arguments(0) 
strFirst = WScript.Arguments(1) 
strLast = WScript.Arguments(2) 
+0

感謝您的答覆,但我認爲命令行屬性將要用於變量時,HTA最初從命令行打開?我的工作流程將是用戶打開HTA,輸入UN,FN和LN的值,提交併(希望)將這些輸入的值傳遞給vbs。就目前來看,HTA啓動時我不會有任何變量。對不起,如果我混淆了這個屬性的功能,但。 – 4W4K3 2014-09-02 18:03:06

+0

啊,好吧。那麼你是否打算使用'WshShell.Run'來啓動VBScript並將參數傳遞給它? – Bond 2014-09-02 18:11:31

+0

正確,那就是我的想法。目前,我將輸入的值保存到「output.txt」,並試圖找到一種方法,然後在VBScript啓動時從文件中引用這些值......但也許有一種方法可以在不需要一個單獨的文本文件? – 4W4K3 2014-09-02 18:21:44