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
如何使用批处理删除CSV文件中字符或字符串之前的文本_Csv_Batch File_Text - Fatal编程技术网

如何使用批处理删除CSV文件中字符或字符串之前的文本

如何使用批处理删除CSV文件中字符或字符串之前的文本,csv,batch-file,text,Csv,Batch File,Text,我有一个CSV文件,我想修改使用批删除字符串基本上我有下一个 randomID1, randomID2, randomID3, networkinterface, othercolumn1, othercolumn2, abc123AAB, 098189909, 999181818, net on Server123, FORCED, anotherthing, abc2455aB, 848449388, 123131232, LocalNet on SEV1, FORCED, otherles

我有一个CSV文件,我想修改使用批删除字符串基本上我有下一个

randomID1, randomID2, randomID3, networkinterface, othercolumn1, othercolumn2,
abc123AAB, 098189909, 999181818, net on Server123, FORCED, anotherthing,
abc2455aB, 848449388, 123131232, LocalNet on SEV1, FORCED, otherlessstuff,
我的相关外壳是Server123和SEV1,因此我需要在

randomID1, randomID2, randomID3, networkinterface, othercolumn1, othercolumn2,
abc123AAB, 098189909, 999181818, Server123, FORCED, anotherthing,
abc2455aB, 848449388, 123131232, SEV1, FORCED, otherlessstuff,
这意味着删除“net on”和“LocalNet on”字符串


如何做到这一点?

批处理语言远远不能满足这一要求,但这里有一个基本脚本,可以简单地逐行删除input.txt中出现的“net on”和“LocalNet on”,并将结果保存为output.txt:


改进是可能的,并且可能需要。例如,如果文件包含保留字符,如
&
,则此操作无效。而且它不区分大小写。后者是“LocalNet on”替换在“net on”替换之前完成的原因,该替换是不区分大小写的子字符串。这里没有CSV的具体内容,因为从你的问题来看,这似乎不是必需的。但是,例如,如果您需要以不同的方式处理不同的逗号分隔标记,则可以使用
“delims=”、“
选项和一些额外的代码来完成。

批处理语言对此并不理想,但这里有一个基本脚本,可以简单地逐行删除“net on”和“LocalNet on”的出现从input.txt并将结果保存为output.txt:


改进是可能的,并且可能需要。例如,如果文件包含保留字符,如
&
,则此操作无效。而且它不区分大小写。后者是“LocalNet on”替换在“net on”替换之前完成的原因,该替换是不区分大小写的子字符串。这里没有CSV的具体内容,因为从你的问题来看,这似乎不是必需的。但是,例如,如果您需要以不同的方式对待不同的逗号分隔标记,那么可以使用
“delims=,”
选项和一些额外的代码来实现。

@Hugo,您有机会看看这是否适用于您吗?如果是,请考虑将答案标记为“接受”。这是值得的。@Hugo,你有机会看看这对你是否有用吗?如果是,请考虑将答案标记为“接受”。这是值得的。
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
TYPE NUL > output.txt
FOR /F "delims=" %%L IN (input.txt) DO (
  SET LINE=%%L
  SET LINE=!LINE:LocalNet on =!
  ECHO/!LINE:net on =!>> output.txt
)