Batch file 如果变量子字符串匹配,如何删除文件中的行
我们已经实现了一个代码,从一个特定的csv开始,提取特定的列并将它们放入另一个csv中: 是否有可能删除以特定位置开始的具有特定字符的行(Batch file 如果变量子字符串匹配,如何删除文件中的行,batch-file,Batch File,我们已经实现了一个代码,从一个特定的csv开始,提取特定的列并将它们放入另一个csv中: 是否有可能删除以特定位置开始的具有特定字符的行(,是分隔符)?我们尝试使用以下方法关联if语句: ( for /f "tokens=6,13 delims=|" %%a in (to_be.csv) do %%a,%%b >FROM_IMPORT.csv for /f "tokens=2" %%a in (FROM_IMPORT.csv) do (set line=%%a
,
是分隔符)?我们尝试使用以下方法关联if
语句:
( for /f "tokens=6,13 delims=|" %%a in (to_be.csv) do %%a,%%b >FROM_IMPORT.csv
for /f "tokens=2" %%a in (FROM_IMPORT.csv) do (set line=%%a
if %line=='A' findstr /v %line FROM_IMPORT.csv> test.csv)
因此,对于第一行,_IMPORT.csv的输出是Site1,ALondon
,而Site2,CLondon
是第二行——
它不起作用,有人有解决方案吗?以下代码片段可能会有所帮助:
@ECHO OFF
SETLOCAL EnableExtensions EnableDelayedExpansion
REM (
REM for /f "tokens=6,13 delims=|" %%a in (to_be.csv) do echo %%a,%%b
REM )>FROM_IMPORT.csv
(
for /f "tokens=1,* delims=," %%a in (FROM_IMPORT_58702269.csv) do (
set "line=%%b"
if /I NOT "!line:~0,4!"=="TEST" echo %%a,%%b
)
)>test_58702269.csv
输出:
type test_58702269.csv
资源(必读,不完整):
以下代码片段可能会有所帮助:
@ECHO OFF
SETLOCAL EnableExtensions EnableDelayedExpansion
REM (
REM for /f "tokens=6,13 delims=|" %%a in (to_be.csv) do echo %%a,%%b
REM )>FROM_IMPORT.csv
(
for /f "tokens=1,* delims=," %%a in (FROM_IMPORT_58702269.csv) do (
set "line=%%b"
if /I NOT "!line:~0,4!"=="TEST" echo %%a,%%b
)
)>test_58702269.csv
输出:
type test_58702269.csv
资源(必读,不完整):
代码是:“(for/f”tokens=6,13 delims=|“%%a in(to_be.csv)do%%a,%%b>FROM_IMPORT.csv for/f”tokens=2%%a in(FROM_IMPORT.csv)do(如果%line='a'findstr/v%line FROM_IMPORT.csv>test.csv,则设置line=%a)”所以FROM_IMPORT.csv的输出是Site1,ALondon是第一行,Site2,CLondon是第二行。请回答问题并在那里添加一个。避免在注释中发布代码片段。嗨,Josefz,在我们的例子中,我们有一个csv文件(例如FROM_IMPORT.csv),字段用逗号分隔。我们试图做的是生成另一个csv(OUT.csv)从\u IMPORT.csv文件中排除所有第三个字段以特定字符串开头的行(例如,TEST)。例如:从\u IMPORT.csv包含在伦敦TESTLOCATION的第一行Sitea和伦敦PRODLOCATION的第二行Siteb中;我们需要做的是,排除第一行,因为它包含TEST。代码为:“(for/f”tokens=6,13 delims=|“(_be.csv)do%%a,%%b>来自_IMPORT.csv,用于/f“tokens=2”%%a来自_IMPORT.csv)do(如果%line='a'findstr/v%来自_IMPORT.csv>test.csv,则设置行=%%a)”所以FROM_IMPORT.csv的输出是Site1,ALondon是第一行,Site2,CLondon是第二行。请回答问题并在那里添加一个。避免在注释中发布代码片段。嗨,Josefz,在我们的例子中,我们有一个csv文件(例如FROM_IMPORT.csv),字段用逗号分隔。我们试图做的是生成另一个csv(OUT.csv)从_IMPORT.csv文件中排除所有第三个字段以特定字符串开头的行(例如,TEST)。例如:从_IMPORT.csv包含第一行Sitea,TESTLOCATION,London和第二行Siteb,PRODLOCATION,London;我们需要做的是排除第一行,因为包含TEST。
Sitea,TESTLOCATION,London
Siteb,PRODLOCATION,London
SiteC,TESTLOCATION,London
SiteD,TESTLOCATION,London
SiteE,PRODLOCATION,London
D:\bat\SO\58702269.bat
type test_58702269.csv
Siteb,PRODLOCATION,London
SiteE,PRODLOCATION,London