转换Java脚本来VB脚本

转换Java脚本来VB脚本

问题描述:

我试图尽可能将代码从JavaScript更改为VBScript ...你能帮助我,如果有任何改变,而错误..转换Java脚本来VB脚本

 <script language='vbscript' type='text/vbscript'> 

Dim myVar = ""; 

function auto(data) 
Dim path = '<%=session.getAttribute("PATH")%>' ; 
    Dim DocId = '<%=session.getAttribute("REQDOCUMENTID")%>' ; 
    Dim extension = '<%=session.getAttribute("FILEEXTN")%>' ; 
    Dim userId = '<%=session.getAttribute("REQUSERID")%>' ; 
    Dim apolloenv = '<%=session.getAttribute("REQAPOLLOENV")%>' ; 

    if(extension != '') Then 
      Dim ext = LCase(extension); 
      Dim fso = CreateObject("Scripting.FileSystemObject"); 
      if (fso.FolderExists(path)) Then         
       path = path & DocId & "." & ext; 
       document.ViewONE.save(path); 
       myVar=window.setInterval(Call checkFile(path,ext),1000);  
      End If 
      if(DocId <> 'null' AND apolloenv <> 'null' AND userId <> 'null') Then 
       getNote(DocId,apolloenv,userId,"autolaunch executed"); 
      End If 
    End If 
End Function 

    function checkFile(path,ext) 

    set fso = CreateObject("Scripting.FileSystemObject"); 
    if(fso.FileExists(path)) Then 
      Call openfile(ext, path); 
      window.clearInterval(myVar); 
End If 
End Function 




function openfile(ext, path) 
    if(ext == 'docx' || ext == 'doc'|| ext == 'docm') Then 
      Dim oApplication = CreateObject("Word.Application"); 
      oApplication.Visible = true; 
      oApplication.Documents.Open(path, false, 0); 
    ElseIf (ext == 'xls'||ext == 'xlsx' ||ext == 'xlsm' ||ext == 'xlsb' ||ext == 'xltx' ||ext == 'xltm') Then 
      Dim objExcel = CreateObject("Excel.Application"); 
      objExcel.Visible = true; 
      objExcel.Workbooks.Open(path, false, 0); 
    ElseIf (ext == 'pptx'|| ext == 'ppt' || ext == 'pptm') Then 
      Dim objPPT = CreateObject("PowerPoint.Application"); 
      objPPT.Visible = true; 
      objPPT.Presentations.Open(path, false, 0); 
    ElseIf (ext == 'msg' || ext == 'eml') Then 
      WSH = CreateObject("WScript.Shell"); 
      WSH.run("file://"+path, 1); 
    ElseIf (ext == 'jpg' || ext == 'tif' || ext == 'png' || ext == 'bmp' || ext == 'mdi' || ext == 'gif') Then 
      imageWSH = CreateObject("WScript.Shell"); 
      imageWSH.run("file://"+path, 1); 
    ElseIf (ext == 'txt') Then 
      txtwshShell = CreateObject("WScript.Shell"); 
      txtwshShell.run("file://"+path, 1); 
    ElseIf (ext == 'pdf') Then 
      wshShell = CreateObject("WScript.Shell"); 
      wshShell.run("file://"+path, 1); 
    Else 
     msgbox "Please use the right click AutoLaunch option available in Apollo as this document type will not be supported by daejaviewer's AutoLaunch." 
End If  
End Function 

我不是肯定getNote,文档,session.attribute功能,有在javascript来改变它的VBScript

+0

你为什么要写“java script”而不是“vbscript”(没有空格)。此外,您用java.Java标记了这个问题,并没有使用javascript。只有前4个字母是相同的,如汽车和地毯。 – Ben 2014-08-31 09:27:44

在Javascript中你可以声明,并在一个语句中初始化变量:

var x = "whatever"; 

在VBScript中,你需要一个Dim和一个赋值:

Dim x : x = "whatever" 

在JavaScript语句中,“;”; VBScript不使用语句终止符 -

window.clearInterval(myVar); 

应该会引发语法错误。其他示例:

oApplication.Documents.Open(path, false, 0); 
==> 
oApplication.Documents.Open path, false, 0 

JavaScript需要参数列表()到处都是;当调用(Sub/Function/Method as a)Sub时,VBScript不使用参数列表()。

​​

是上述呼叫的VBScript。

通工作的文档进行VBScript operators使线条状

if(ext == 'docx' || ext == 'doc'|| ext == 'docm') Then 

体面。

字符串文字分隔符是“在VBScript中,而不是”(或“),如在Javascript中。要检查Null(而不是字符串文字“null”),您需要使用IsNull()函数。所以

DocId <> 'null' 

是一个双重失误。

的VBScript需要Set分配一个目的是变量时:

Dim oApplication = CreateObject("Word.Application"); 
==> 
Dim oApplication : Set oApplication = CreateObject("Word.Application") 

可以有更多的错误;我建议您纠正指出的问题,并发布更好的修订以获得有关其余错误的帮助。

+0

非常感谢你Ekkehard霍纳:) – durga 2014-08-31 10:29:11

+0

我已经改变了代码根据提到的改变做。但是代码还没有工作 – durga 2014-09-01 10:53:50