0

我需要保留文件的某些部分并处理我从该文件中提取的那些项目。我从批处理中调用一个 VBScript 文件来处理我想要转换的那些项目。我的目标是将所有这些(由 VBScript 进程转换的项目和不受此进程影响的项目)放入同一个文件中。

批处理文件:

 @echo off
 cscript run.vbs findstr /r "^I.=" "%~f1"

run.vbs

 set objF=createobject("scripting.filesystemobject")
 x=objF.opentextfile(wscript.arguments(0),1).readall

每次我运行批处理时,它都会在我的 VBScript 行中发生执行错误 x=objF.opentextfile(wscript.arguments(0),1).readall。我理解这个错误,因为run.vbs从批处理中给出的参数不是文件。

4

2 回答 2

1

在将值传递给 vbs 脚本之前尝试将值存储在变量中,您可以在批处理脚本中添加一些异常检查。你能发布一些例子。

于 2013-06-11T05:47:25.443 回答
-1

如果要在 VBScript 中处理批处理命令的输出,则必须执行以下操作:

@echo off

for /f %%a in ('findstr /r "^I.=" "%~f1"') do (
  cscript run.vbs "%~fa"
)

不过,完全在 VBScript 中执行此操作可能更容易:

Set fso = CreateObject("Scripting.FileSystemObject")

Set re = New RegExp
re.Pattern = "^I.=(.*)"

Set f = fso.OpenTextFile(WScript.Arguments.Unnamed(0))

Do Until f.AtEndOfStream
  Set m = re.Execute(f.ReadLine)
  If m.Count > 0 Then
    text = fso.OpenTextFile(Trim(m(0).SubMatches(0))).ReadAll
    'do stuff with text
  End If
Loop

f.Close
于 2013-06-11T08:15:39.567 回答