VBScript正在导致WINWORD.EXE和WSCRIPT.EXE挂起
我有一个.vbs脚本,用于自动创建.doc文件 从.bat或直接从命令行启动时,此脚本运行良好。但我有一个外部程序启动了这个脚本,它挂起了。发生这种情况时,任务管理器中会有一堆WINWORD.exe和WSCRIPT.exe条目 此代码是否有任何明显的错误,可能导致问题VBScript正在导致WINWORD.EXE和WSCRIPT.EXE挂起,vbscript,Vbscript,我有一个.vbs脚本,用于自动创建.doc文件 从.bat或直接从命令行启动时,此脚本运行良好。但我有一个外部程序启动了这个脚本,它挂起了。发生这种情况时,任务管理器中会有一堆WINWORD.exe和WSCRIPT.exe条目 此代码是否有任何明显的错误,可能导致问题 Const wdReplaceAll = 2 Const workPath = "d:\work" Const template = "template\template.doc" UniqueId = Wscript.Argu
Const wdReplaceAll = 2
Const workPath = "d:\work"
Const template = "template\template.doc"
UniqueId = Wscript.Arguments(0)
If Wscript.Arguments.Named.Exists("Tokens") Then
strTokens = Wscript.Arguments.Named.Item("Tokens")
End If
If Wscript.Arguments.Named.Exists("Values") Then
strValues = Wscript.Arguments.Named.Item("Values")
End If
arrToken = Split(strTokens,"|")
arrValue = Split(strValues,"|")
if UBound(arrToken) = UBound(arrValue) Then
CreateFax UniqueId, arrToken, arrValue
else
Wscript.Echo "Tokens and Values must be same length"
Wscript.Echo "Tokens: " & UBound(arrToken) + 1 & " Values: " & UBound(arrValue) + 1
end if
Sub CreateFax(UniqueId, arrToken, arrValue)
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.Activate
objWord.DisplayAlerts = 0
Set objDoc = objWord.Documents.Open(workPath & "\" & template)
for i = 0 to UBound(arrToken)
FindAndReplace objWord.Selection, arrToken(i), arrValue(i)
next
objDoc.SaveAs(workPath & "\" & UniqueId & ".doc")
objWord.Quit
Set objSelection = Nothing
Set objDoc = Nothing
Set objWord = Nothing
End Sub
Sub FindAndReplace (objSelection, strFind, strReplace)
objSelection.Find.Text = strFind
objSelection.Find.Forward = TRUE
objSelection.Find.MatchWholeWord = TRUE
objSelection.Find.Replacement.Text = strReplace
objSelection.Find.Execute ,,,,,,,,,,wdReplaceAll
End Sub
即使
不,没有什么明显的问题。
看一看上面提到的externel程序、自动化过程并调试它们
我已经编辑了你的问题并重新格式化了代码块。对于潜在的回答者来说,找到一个描述得很好的问题、很好的格式和不太容易滚动的内容总是更令人愉快的。即使 不,没有什么明显的问题。 看一看上面提到的externel程序、自动化过程并调试它们
我已经编辑了你的问题并重新格式化了代码块。对于潜在的回答者来说,找到一个描述良好的问题、良好的格式和不太容易滚动的内容总是更令人愉快的。请简要解释一下,哪个外部程序调用此脚本?你知道它是用cscript还是wscript调用的吗?它可以用cscript或wscript调用。它是一个调用在服务器上运行的iPShellExecute()的程序。一个自动化的进程启动它,然后vbs脚本运行并生成.doc。但它没有运行。如果我获取它正在调用的命令行字符串并将其放入CMD或.bat中,它运行良好…好的,在您描述的问题中,您描述了另一种行为。如果脚本使用(完全)相同的命令行运行,则问题来自调用过程。(例如,在另一个用户上下文中运行,在循环中结巴…)听说过这个叫做的东西吗?你能简单解释一下,哪个外部程序调用这个脚本吗?你知道它是用cscript还是wscript调用的吗?它可以用cscript或wscript调用。它是一个调用在服务器上运行的iPShellExecute()的程序。一个自动化的进程启动它,然后vbs脚本运行并生成.doc。但它没有运行。如果我获取它正在调用的命令行字符串并将其放入CMD或.bat中,它运行良好…好的,在您描述的问题中,您描述了另一种行为。如果脚本使用(完全)相同的命令行运行,则问题来自调用过程。(例如,在另一个用户环境中运行,在循环中结巴…)听说过这个叫做的东西吗?