我的格式liste_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="
for /F "tokens=1,2 delims=$" %%a in (formatliste_droid.txt) do (
if "%%a" neq "!prevLine!" (
echo %%a$%%b>>_formatliste_droid.txt
set "prevLine=%%a"
)
)
使用此代码,我可以创建唯一的行,但是$之后的部分会丢失,除了第一行。有没有办法用唯一的路径将它们全部连接起来?我总是需要检查路径是否相同,然后使它们唯一并与$
之后的所有结果连接答案 0 :(得分:1)
您真正想念的就是使用ELSE
逻辑在相等和不相等时做某事。
@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