【问题标题】:Compare strings in two text files比较两个文本文件中的字符串
【发布时间】:2019-09-27 09:21:34
【问题描述】:

我一直在检查每个地方,但似乎找不到我需要的资源。

到目前为止,我发现的所有内容都只比较了整个文件,但这不是我想要的。

我已经看到 cmd 的“文件比较”等工具可以提供帮助,但它的比较方式不符合需要。

FC [filepath1] [filepath2]

有没有办法让我做到这一点。

获取文本文件的第一行并将其与第二个文件的每一行进行比较,然后通过使用文件名创建一个新的文本文件并使用 >Name of file (first text文件)>所有匹配的文件(来自第二个文件)。然后它返回到第一个文本文件的第二行,并将其与第二个文件的每一行进行比较,并创建另一个文本文件做同样的事情,直到第一个文件变空。

我获取文本文件中所有文件的方法是运行以下命令。

Get-ChildItem -Path D:\Documents\Projects\audio -Recurse | Select-Object @{n='File'; e={$_.Name + "," + $_.LastWriteTime}} | Out-File "D:\Documents\Projects\audio\Log.txt"
Get-ChildItem -Path D:\Documents\Projects\video -Recurse | Select-Object @{n='File'; e={$_.Name + "," + $_.LastWriteTime}} | Out-File "D:\Documents\Projects\Video\Log.txt"

我将比较第一个文本文件中的视频文件名和第二个文本文件中的每个音频文件名。

一些视频有大约 2 个音频,其他大约 8 个音频,它们都具有相同的名称。我已经在寻找一种可以从文件名中删除最后 3 个字符的方法。

名字是这样写的

somefilm_v1.mxf

somefilm_a1.mxf

somefilm_a2.mxf

somefilm_a3.mxf

v1 指视频 1,a1 指音频 1。FileName_ 相同,只是 a*/v1 两个字符不同。所以我正在研究如何不检查文件名的最后 2/3 个字符。如果它也检查文件格式,可能必须将其增加到 5。

如果这也可以在比较发生之前通过批处理完成,那也很棒。

如果可能的话,我正在寻找批量完成。

【问题讨论】:

    标签: file text cmd compare


    【解决方案1】:

    您想遍历文件的内容。最好的做法是使用for /f 循环。但你甚至不需要文件。只需遍历所有 *_v1.mxf 文件即可。然后拆分电影名并添加所有<MovieName_a*>文件名:

    @echo off
    setlocal enabledelayedexpansion
    
    for %%a in (*_v1.*) do (
      set "all="%%a""
      for /f "delims=_" %%b in ("%%~na") do (
        for %%c in ("%%b_*a*") do set all=!all! "%%c"
      )
      echo !all!
    )
    

    如果出于某种原因您确实需要遍历文件,请将第一个 for %%a 循环替换为 for /f "delims=" %%a in (file.txt) do (

    【讨论】:

    • 您是否在正确的目录中执行它?有*_v1.mxf 文件吗?
    • 是的,它们在目录中
    • 输出给出的是两个视频的文件名,但不是匹配的音频
    • 好的,我想我看到了这个问题。 a* 指的是任何数字,例如通配符。有没有办法检查该行中 A1 到 A8 之间的所有数字
    • OK,得到输出,“5f367f72-9e2f-4f89-b3d6-2cdafed17d94_IRO_RMUSI_SONG_TimayaKingPerryy_KomKom.mxf_V1.MXF.m2v”“5f367f72-9e2f-4f89-b3d6-2cdafed” "5f367f72-9e2f-4f89-b3d6-2cdfed17d94_A2.MXF""""5f367f72-9e2f-4f89-b3d6-2cdfed17d94_A3.MXF""""5f367f72-9e2f-4f89-b3d6-2cdafed17d94_A4.MXF""
    猜你喜欢
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    相关资源
    最近更新 更多