Batch file 如何使文本行的第一部分唯一,并批量连接第二部分?

Batch file 如何使文本行的第一部分唯一,并批量连接第二部分?,batch-file,for-loop,if-statement,Batch File,For Loop,If Statement,我的formatliste_droid.txt中有以下行: Z:\15_Testdateien\jhove_Script_fuer_MIX-Verzeichnisse\testfiles\1002779294_sf_droid_no_match.pdf$fmt/95 Z:\15_Testdateien\jhove_Script_fuer_MIX-Verzeichnisse\testfiles\1002779294_sf_droid_no_match.pdf$fmt/477 Z:\15_Testd

我的formatliste_droid.txt中有以下行:

Z:\15_Testdateien\jhove_Script_fuer_MIX-Verzeichnisse\testfiles\1002779294_sf_droid_no_match.pdf$fmt/95
Z:\15_Testdateien\jhove_Script_fuer_MIX-Verzeichnisse\testfiles\1002779294_sf_droid_no_match.pdf$fmt/477
Z:\15_Testdateien\jhove_Script_fuer_MIX-Verzeichnisse\testfiles\1002779294_sf_droid_no_match.pdf$fmt/354
$前面的第一部分重复,需要唯一。美元后的第二部分总是不同的。 因此,我需要的是转换到一个唯一的路径,该路径与后面的所有第二部分连接在一起$

Z:\15_Testdateien\jhove_Script_fuer_MIX-Verzeichnisse\testfiles\1002779294_sf_droid_no_match.pdf$fmt/95$fmt/477$fmt/354


使用这段代码,我可以生成唯一的行,但是除了第一行之外,$之后的部分行丢失了。有没有办法用唯一的路径将它们连接起来?我总是需要检查是否有相同的路径,然后将它们与$

之后的所有结果进行唯一的连接。您真正缺少的是使用一些
其他
逻辑来执行相等和不相等的操作

@echo off
setlocal EnableDelayedExpansion
set "prevLine="
set "newLine="
(for /F "tokens=1,2 delims=$" %%a in (formatliste_droid.txt) do (
    if "%%a"=="!prevLine!" (
        set "newline=!newline!$%%b"
    ) ELSE (
        IF DEFINED newline echo !newline!
        set "newline=%%a$%%b"
    )
    set "prevline=%%a"
)
echo !newline!
)>_formatliste_droid.txt

当它们相等时,是什么阻止你使用
其他
做某事?
@echo off
setlocal EnableDelayedExpansion
set "prevLine="
set "newLine="
(for /F "tokens=1,2 delims=$" %%a in (formatliste_droid.txt) do (
    if "%%a"=="!prevLine!" (
        set "newline=!newline!$%%b"
    ) ELSE (
        IF DEFINED newline echo !newline!
        set "newline=%%a$%%b"
    )
    set "prevline=%%a"
)
echo !newline!
)>_formatliste_droid.txt