Batch file 批处理如果两个文本文件不相同,请将它们复制到新的文本文件中

Batch file 批处理如果两个文本文件不相同,请将它们复制到新的文本文件中,batch-file,Batch File,因此,我得到了一个程序,可以将当前歌曲从游戏中导出到文本文件中。 现在我想有两个文件,一个是当前歌曲输出,一个是旧输出,当两个文件中的歌曲不相同时,旧输出会被更新,因此在旧输出文件中应该有: song2 song1 在当前输出文件中: song2 有点难以解释。 我是这样试的: for /f "tokens=* USEBACKQ" %%f in (`findstr "Now Playing:" np.txt`) DO ( set var=%%f ) echo %v

因此,我得到了一个程序,可以将当前歌曲从游戏中导出到文本文件中。
现在我想有两个文件,一个是当前歌曲输出,一个是旧输出,当两个文件中的歌曲不相同时,旧输出会被更新,因此在旧输出文件中应该有:

song2  
song1  
在当前输出文件中:

song2  
有点难以解释。
我是这样试的:

for /f "tokens=* USEBACKQ" %%f in (`findstr "Now Playing:" np.txt`) DO (  
    set var=%%f
)  
echo %var%  
for /f "tokens=* USEBACKQ" %%f in (`findstr "Now Playing:" lastplayed.txt`) DO (  
    set var1=%%f  
)  
echo %var1% 
if %var% NOT %var1%
copy %var% + %var1% justplayed.txt  
请不要对我无礼,我对这批货是全新的,我已经尽力了。 如果我完全搞砸了,请纠正我

先谢谢你

...
echo %var1% 
if "%var%" NEQ "%var1%" copy "%var%" + "%var1%" justplayed.txt
假设您正确地显示了
%var%
%var
%,那么这应该是可行的

文件名在比较运算符的两侧都被限定,因此,如果任一变量包含分隔符(如空格),则字符串将被解释为单个项。相同的注释适用于
copy
命令。
neq
运算符表示
不相等。请注意,必须将目标命令与
if
放在同一行上。格式非常严格,如果需要,可以跨多行排列,但在这种情况下,必须遵循以下格式:

if something operator somethingelse (
 dothis
) else (
 dothat
)

其中,操作员必须是==EQ
geqleq之一;
else
子句是可选的,如果愿意,右括号可以与匹配的开括号在同一行

在代码中,有三个文本文件:
np.txt
lastplayed.txt
,和
justplayed.txt
。这是一个错误,还是你需要这三者都存在?