Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如果变量子字符串匹配,如何删除文件中的行_Batch File - Fatal编程技术网

Batch file 如果变量子字符串匹配,如何删除文件中的行

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

我们已经实现了一个代码,从一个特定的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 %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