保留文件的某些部分并通过批处理文件中的vbs脚本文件处理其他文件

时间:2013-06-11 05:39:09

标签: batch-file vbscript

我需要保留文件的某些部分并处理我从此文件中提取的项目。我从批处理中调用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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:-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