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