批量

时间:2016-11-13 21:24:15

标签: batch-file duplicates

我需要在我的批处理脚本中实现另一个批处理脚本。我有一个脚本扫描字符串并将它们输出到一个名为“strings.txt”的文本文件中,我想用另一个批处理脚本删除重复的行。我想以某种方式将其他批处理脚本实现到我的。这是我需要应用的脚本。

@echo off
setlocal disableDelayedExpansion
set "file=%~1"
set "line=%file%.line"
set "deduped=%file%.deduped"
::Define a variable containing a linefeed character
set LF=^


::The 2 blank lines above are critical, do not remove
>"%deduped%" (
  for /f usebackq^ eol^=^%LF%%LF%^ delims^= %%A in ("%file%") do (
    set "ln=%%A"
    setlocal enableDelayedExpansion
    >"%line%" (echo !ln:\=\\!)
    >nul findstr /ilg:"%line%" "%deduped%" || (echo !ln!)
    endlocal
  )
)
>nul move /y "%deduped%" "%~n1_deduped%~x1"
2>nul del "%line%"

我需要将所有这些发生在我的文本文件中,但所有这些或其中的变体都出现在我的脚本中。

1 个答案:

答案 0 :(得分:1)

Set Inp = WScript.Stdin
Set Outp = Wscript.Stdout
Set Dict = CreateObject("Scripting.Dictionary")
Do Until Inp.AtEndOfStream
    On Error Resume Next
    Line=Inp.readline
    Dict.Add Line, ""
Loop
For Each thing in Dict.Keys()
    Outp.writeline thing
Next

将上面的内容放在文本文件中并将其命名为DeDup.vbs。使用

cscript //nologo "C:\folder\dedup.vbs" < "C:\folder\inputfile.txt" > "C:\folder\outputfile.txt"

这是来自Filter - 19个子例程,显示如何过滤行,排序,修剪,说话,使用剪贴板,获取网页,剥离标记等。https://onedrive.live.com/?id=root&cid=E2F0CE17A268A4FA