转换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
答
在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")
可以有更多的错误;我建议您纠正指出的问题,并发布更好的修订以获得有关其余错误的帮助。
你为什么要写“java script”而不是“vbscript”(没有空格)。此外,您用java.Java标记了这个问题,并没有使用javascript。只有前4个字母是相同的,如汽车和地毯。 – Ben 2014-08-31 09:27:44