我正在尝试创建一个批处理文件来读取 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
任何帮助都将不胜感激!谢谢
我有这个来查找用户名,但现在我想检查数字是否与另一个变量匹配:
变量包括:“用户名”和“站点号”
findstr /c:"%username%" "ACL.csv" >nul 2>&1
IF NOT ERRORLEVEL 1 (
echo AUTHORIZED
) else (
echo UNATHORIZED!!!!
)
答案1
我想检查这些数字是否与另一个变量匹配
|
只需将第一个的输出通过管道( )findstr
传输到另一个输出findstr
即可,如下所示:
findstr /c:"%username%" "ACL.csv" | findstr /c:" %sitenum%," >nul 2>&1
笔记:
- 前导
(空格)和尾随
,
(逗号)很重要,因为这可以防止 1 匹配 11(例如)
- Windows CMD 命令行的 AZ 索引
- Windows CMD 命令的分类列表
- 重定向- 重定向运算符。
答案2
如果您使用 FINDSTR 命令的有限正则表达式选项,您应该能够使用一个 FINDSTR 来完成此操作。
findstr /r /c:"%username%,.* %sitenum%," /c:"%username%,.* %sitenum%$" "ACL.csv"