0

次のように、複数の値がダッシュで区切られた 1 行のみを含む TXT ファイルがあるとします。

1000 -675 -76 -98 -10

私が必要とするのは、ファイルを作成するbatchか、ファイルvbsを読み取ってTXT各値を変数に割り当てることです。出力は次のようになります。

variablename=1000

variablename=675

variablename=76

variablename=98

variablename=10

これを行う方法はありますか?? 助けていただければ幸いです....ありがとう

4

3 に答える 3

1

VBScript では、おそらく辞書を使用して値を格納します。

Set fso  = CreateObject("Scripting.FileSystemObject")
Set vars = CreateObject("Scripting.Dictionary")

i = 1
For Each val In Split(fso.OpenTextFile("C:\path\to\your.txt").ReadAll, " -")
  vars.Add "var" & i, Trim(val)
  i = i + 1
Next

辞書要素に特定の名前が必要な場合は、それらを配列で提供できます。

Set fso  = CreateObject("Scripting.FileSystemObject")
Set vars = CreateObject("Scripting.Dictionary")

names = Array("apples", "pineapples", ...)

i = 0
For Each val In Split(fso.OpenTextFile("C:\path\to\your.txt").ReadAll, " -")
  vars.Add names(i), Trim(val)
  i = i + 1
Next

もちろん、名前の数は値の数以上でなければなりません。そうしないと、エラーが発生します。

于 2013-10-05T08:20:02.520 に答える
0
@echo off&setlocal enabledelayedexpansion
set /a inc=0
for /f "delims=" %%i in (file.txt) do (
   set a=%%i
   set a=!a:-=!
    for %%j in (!a!) do (
      set V[!inc!]=%%j
      set /a inc+=1
   )
)
for /l %%i in (0,1,%inc%-1) do echo !V[%%i]!

これにより、必要な数のトークンが取得されます。

于 2013-10-05T15:11:22.280 に答える
0

OK、バッチ ファイルから .txt ファイル内の複数の情報を読み取るには、for /fループを使用します。

set /p line=< Text file.txt
for /f "tokens=1,2,3,4,5 delims=-" %%a in ("%line%") do (
set var1=%%a
set var2=%%b
set var3=%%c
set var4=%%d
set var5=%%e
)

等々。これは最初の行のみを解析することに注意してください (そして、予想される数字の数についてある程度の知識が必要です)。数値の解析と量の計算が可能なスクリプトが必要かどうか教えてください。

モナ

于 2013-10-05T02:47:47.347 に答える