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).readallrun.vbsfrom batch で指定されたパラメーターがファイルではないため、このエラーを理解しています。

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 に答える