批处理脚本:双引号不会在循环中转义

问题描述 投票:0回答:1

我有一个csv文件(即test.csv),我只能在该文件中找到双引号引起来的字符串。这些双引号字符串需要在一个特定的列(即第7列)中找到。以下是文件内容:

公司,项目代码,级别1,新级别2,新级别3,任务编号,级别4描述,年份,期间,货币,成本

[白色工程技术,123456,A,A-AB,A-AB-ABC,A-AB-ABC-XYZ,“你好,世界”,2020年2月,AAA,9900000

[白色工程技术,123456,A,A-AB,A-AB-ABC,A-AB-ABC-XYZ,“我的世界”,2020年2月,AAA,9900001]]

白色工程技术,123456,A,A-AB,A-AB-ABC,A-AB-ABC-XYZ,“您的世界”,2020年2月,AAA,9900002

我写了一个循环,转到每一行,然后发现那里是否有双引号。我能够遍历每行,但找不到双引号。我也尝试过使用FIND和FINDSTR命令。我尝试使用\,^和“作为双引号的转义字符,但是没有任何效果。下面是我的代码(使用双引号作为转义符):

@echo off
setLocal EnableDelayedExpansion

FOR /F "tokens=* delims=" %%a IN (test.csv) DO (
    set line=%%a
    echo !line!
    find """" !line! && (
                echo "Double quotes found"
                ) || (
                echo "Double quotes not found"
                )
    pause
)

请帮助/指导。谢谢。

我有一个csv文件(即test.csv),我只能在该文件中找到双引号引起来的字符串。这些双引号字符串需要在一个特定的列(即第7列)中找到。正在关注...

batch-file escaping double quotes
1个回答
0
投票

find command期望第二个参数是文件路径,而不是文字字符串,因此您无法执行find在由find """" !line!表示的字符串中找到文字"。要搜索字符串,您将必须使用!line!

© www.soinside.com 2019 - 2024. All rights reserved.