String 如何使用批处理文件删除或跳过文件中的多行字符串

String 如何使用批处理文件删除或跳过文件中的多行字符串,string,batch-file,skip,multilinestring,String,Batch File,Skip,Multilinestring,前- 输入文件-File1.txt包含- multiline String Mango Orange String Orange 然后输出应该在File2.txt中- multiline, Mango @ECHO关闭 SETLOCAL ENABLEDELAYEDEXPANSION 设置“prevline=” ( 对于/f“delims=“%%a IN('type q22913138.txt^ | sort')DO( 如果定义了prevline,则“%%a”==“!prevline

前-
输入文件-File1.txt包含-

multiline

String

Mango

Orange

String

Orange
然后输出应该在File2.txt中-

multiline,

Mango
@ECHO关闭
SETLOCAL ENABLEDELAYEDEXPANSION
设置“prevline=”
(
对于/f“delims=“%%a IN('type q22913138.txt^ | sort')DO(
如果定义了prevline,则“%%a”==“!prevline!”回显(%%a
设置“prevline=%%a”
)
)>tempfile.txt
键入q22913138.txt | FINDSTR/v/i/x/g:tempfile.txt>newfile.txt
DEL tempfile.txt 2>nul
后藤:EOF
我使用了一个名为
q22913138.txt
的文件,其中包含用于测试的数据。 生成newfile.txt


我做了一些小的调整

问题似乎是您的数据文件在最后一个
橙色之后没有换行符。不幸的是,很难准确地看到文本帖子的格式。对于文件1中的每个单词(计算该单词的出现次数,如果只有一个(写入文件2)):


编辑:(“是否有任何优化方法可以打印出文件中多次出现的字符串,出现次数为-input file--file1.txt”


输入文件-File1.txt包含请尝试更好地解释!您想删除字符串
Multiline
,并且在
output.txt
中有
Multiline
?没有这样的“Multiline string”在一个文本文件中。一个文本文件由几行单独的行组成。请解释一下为了消除某些行而要遵循的方法…我已经尝试了你的代码,但它仍然没有给我正确的输出。你上面代码的输出是-多行Mango Orange-->但Orange不应该存在。我认为sc中有问题cript.我想删除我的txt文件中多次出现的字符串的所有内容…file1.txt包含-Ram shyam Ravi Ravi Ravi Ram然后输出应在另一个文件file2.txt Shayam中,因为它的出现次数仅为一次,而不超过一次。是否有优化方法打印出文件中多次出现的字符串随着出现次数-输入文件-file1.txt Ram Ram sita Ram输出应该是-Ram occour的3倍。以上代码运行良好。您能告诉我您在哪里学会了批处理脚本吗?我是乞丐,我想成为这方面的专家。实践、实践和实践-超过30年。但上述代码也打印了批处理脚本只出现一次的字符串。该字符串不应存在。请检查一次。它应仅打印具有多个事件的字符串。
@echo off
for /f "delims=" %%i in ("file1.txt") do (
 for /f "tokens=2 delims=:" %%n in ('find /c "%%i" "file1.txt"') do (
  if %%n equ 1 echo %%i >>"file2.txt"
 )
)
@echo off
echo.>file2.txt
for /f "delims=" %%i in (file1.txt) do (
 for /f "tokens=2 delims=:" %%n in ('find /c "%%i" "file1.txt"') do (
  if %%n equ 1 ( 
   rem echo %%i >>"file2.txt"
  ) else ( 
   find "%%i" "file2.txt">nul ||echo %%i occures %%n times >>"file2.txt"
  )
 )
)