我想提取这样的文件的值:
4564,cde0
7578,Kernel
123465,Performer
INFO,Kernel
我认为将数据放入 csv 文件将是最简单的选择,但如果有更简单的方法来获取变量中的值,我愿意寻求建议。我将有超过四行...
我想使用以下值: 从第 1 行开始,我需要将 4564 和 cde0 放在单独的变量中。 将它们放入我的脚本中,然后继续第二行,依此类推。
我发现了几个处理列的威胁,现在我有以下代码:
for /F "tokens=1-2 delims=," %%a in (test.csv) do (@echo %%a %%b)
但这只是显示了没有“,”的内容。
有什么方法可以遍历一行并将两个值放入两个变量中吗?
如果是这样,我认为浏览 csv 文件的最简单方法是一个循环,我将值提取到变量中,使用它们并继续下一行,但由于我对批处理不太熟悉,所以我不这样做知道这是否是最好的方法。
谢谢
最佳答案
在这种情况下,多维数组就可以解决问题。由于batch没有数组功能,但我们可以自己制作!就像这样:
@echo off
setlocal enabledelayedexpansion
set var1=0
for /F "tokens=1* delims=," %%a in (text.csv) do (
set var2=0
set array[!var1!][!var2!]=%%a
set /a var2+=1
set array[!var1!][!var2!]=%%b
set /a var1+=1
)
echo First column, First element: %array[0][0]%
echo First column, Second element: %array[0][1]%
echo Second column, First element: %array[1][0]%
echo Second column, Second element: %array[1][1]%
pause >nul
让我简要解释一下这里发生的事情。多维数组是包含一个或多个数组的数组。最常见的数组类似于 array[0]
,表示第一个元素,因为该元素从 0 开始计数。
而多维数组如 array[0][0]
表示第一个数组的第一个数组(可能听起来很困惑)。想想array
[0] [0]
是行,array[0]
[0] 是列,因此 array[1][2]
表示第2行第3列。 (*画一张表格并练习)
关于csv - 批量获取 csv 值并将其保存到变量中以供进一步使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32101856/