我有两个.properties文件,如下所示
first.properties second.properties
----------------- ---------------------
firstname=firstvalue fourthname=fourthvalue
secondname=secondvalue sixthname=sixthvalue
thirdname=thirdvalue nineththname=ninethvalue
fourthname=fourthvalue tenthname=tenthvalue
fifthname=fifthvalue
sixthname=sixthvalue
seventhname=seventhvalue
我想比较两个文件,需要从first.properties中删除常见的名称 - 值对。 输出文件应为
third.properties.
------------------
firstname=firstvalue
secondname=secondvalue
thirdname=thirdvalue
fifthname=fifthvalue
seventhname=seventhvalue
我使用了以下代码,但是它给出了笛卡尔产品方案。请你帮助我实现上述目标。
for /F "tokens=1,2 delims==" %%E in (first.properties) do (
for /F "tokens=1,2 delims==" %%G in (second.properties) do (
if "%%E" NEQ "%%G" echo %%E=%%F>>!HOME!\Properties\third.properties
)
)
答案 0 :(得分:1)
要非常小心,你要完全解释你的任务。 有了这些新信息,这里就可以了。
@echo off
pushd "d:\folder"
copy /y "first.properties" "third.properties" >nul
for /f "delims==" %%a in (' type "second.properties" ') do (
find /v /i "%%a=" <"third.properties" > "third.properties.tmp"
move /y "third.properties.tmp" "third.properties" >nul
)
答案 1 :(得分:0)
试试这个:
findstr /vg:second.properties first.properties>third.properties