【发布时间】:2018-12-28 23:32:11
【问题描述】:
这是我的 2 个 txt 文件 formatliste_droid.txt 和 formatliste_siegfried.txt 的相同内容。我想知道分隔符 $:$ 之前的所有行是否相同 1-1、2-2 等等。
Z:\15_Testdateien\jhove_Script_fuer_MIX-Verzeichnisse\testfiles\BVBBV042064787\Files\E\images.jpg$;$fmt/43
Z:\15_Testdateien\jhove_Script_fuer_MIX-Verzeichnisse\testfiles\BVBBV042064787\Files\E\Van Schijndel House - English.mp4$;$fmt/199
Z:\15_Testdateien\jhove_Script_fuer_MIX-Verzeichnisse\testfiles\BVBBV042064787\Files\E\Van Schijndelhuis - Nederlands.mp4$;$fmt/199
这是我的代码:
@echo off
Setlocal EnableDelayedExpansion
for /f "tokens=1 delims=$;$" %%a in (formatliste_siegfried.txt) do (
for /f "tokens=1 delims=$;$" %%c in (formatliste_droid.txt) do (
if /i %%a==%%c (
echo match
pause
)
)
)
问题是即使相应的行不相同,我也总是得到匹配
【问题讨论】:
-
分隔符肯定是分号 ; 或至少是序列 $;$。但是,当使用
Delims时,您应该,在这种情况下只需要"Delims=$" -
first:
delims是单字符分隔符。delims=$;$在每个$和每个;处定界。第二:将“Siegfried”的每一行与droid的每一行进行比较。这是你的意图吗?或者你想将“Siegfried”的每一行与“droid”的对应行(相同的行号)进行比较? (为了调试你应该使用echo match: %%a # %%c) -
我建议你只使用
%%a和Find,即Do Find /I "%%a$;$"<"formatliste_droid.txt">Nul&&(Echo [match] %%a)||Echo [unique] %%a -
@Stephan 我想将 Siegfired 的每一行与 Droid 的相应行进行比较。如果我将分隔符限制为仅 1 个符号,我也会遇到同样的问题
标签: batch-file for-loop