读取变量的CSV并检查该行上的单元格是否有另一个变量


1

我正在尝试创建批处理文件来读取CSV文件以查找将成为变量的用户名,然后检查该行上的下10个单元格是否与另一个将是数字的变量匹配。

示例CSV:

bsmith, 22, 14, 15, 12, 18, 19
cwright, 10, 15, 11, 2
hwrong, 2, 6, 3
csmith, 10, 16, 19, 3, 5, 19, 18, 7, 2, 4

任何帮助将不胜感激!谢谢

我有这个找到用户名但现在我想检查数字是否与另一个变量匹配:

变量是:'username'和'sitenum'

findstr /c:"%username%" "ACL.csv" >nul 2>&1
IF NOT ERRORLEVEL 1 (
echo AUTHORIZED
) else (
echo UNATHORIZED!!!!
)

这是Windows批处理文件吗?您的标签意味着类似Linux的系统,但它findstr是一个Windows命令。
davidmneedham

是的,它是窗户。我很抱歉,我是超级用户的
新手

1
@ JimBean2208如果你使用FINDSTR命令的有限正则表达式选项,你应该可以用一个FINDSTRfindstr /r /c:"%username%,.* %sitenum%," "ACL.csv"
Squashman

Answers:


1

我想检查数字是否与另一个变量匹配

只需|将第一个输出管道()传递给findstr另一个findstr,如下所示:

findstr /c:"%username%" "ACL.csv" | findstr /c:" %sitenum%," >nul 2>&1

注意:

  • 前导(空格)和尾随,(逗号)很重要,因为这可以防止1个匹配11(例如)


实际上,当尝试查找每个用户名的最后一个数字时,这将失败,因为数据示例在每行的末尾没有尾随逗号。我的回答也是如此。
Squashman

你可以改变第二FINDSTRfindstr /C:" %sitenum%," /RC:" %sitenum%$"
Squashman

0

如果使用FINDSTR命令的有限正则表达式选项,则应该能够使用一个FINDSTR执行此操作。

findstr /r /c:"%username%,.* %sitenum%," /c:"%username%,.* %sitenum%$" "ACL.csv"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.