假设我有一个 TXT 文件,其中仅包含一行,其中多个值用破折号分隔,如下所示:
1000 -675 -76 -98 -10
我需要的是创建一个batch
文件或vbs
读取TXT
文件并为每个值分配一个变量。输出应该是这样的:
variablename=1000
variablename=675
variablename=76
variablename=98
variablename=10
有没有办法做到这一点?感谢您的帮助....谢谢
假设我有一个 TXT 文件,其中仅包含一行,其中多个值用破折号分隔,如下所示:
1000 -675 -76 -98 -10
我需要的是创建一个batch
文件或vbs
读取TXT
文件并为每个值分配一个变量。输出应该是这样的:
variablename=1000
variablename=675
variablename=76
variablename=98
variablename=10
有没有办法做到这一点?感谢您的帮助....谢谢
在 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
当然名称的数量必须等于或大于值的数量,否则会出错。
好的,要从批处理文件中读取 .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
)
等等。请注意,这只会解析第一行,(并且您需要对预期的数字有一些了解)。如果您想要一个可以解析和数量的数字的恶意脚本,请告诉我。
莫娜
@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]!
这将根据需要获取尽可能多的令牌。