BATCH如果两个文本文件不相同,则将它们复制到新的文本文件中

时间:2014-12-08 14:34:29

标签: batch-file

所以我有一个程序将游戏中的当前歌曲输出到文本文件中 现在我想要2个文件,1个带有当前歌曲输出,1个带旧输出,当两个文件中的歌曲不相同时会更新,所以在旧的输出文件中应该有:

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  

请不要对我不礼貌,我对BATCH全新,只是尽我所能。 如果我完全搞砸了,请纠正我。

提前谢谢你。

1 个答案:

答案 0 :(得分:0)

...
echo %var1% 
if "%var%" NEQ "%var1%" copy "%var%" + "%var1%" justplayed.txt

这应该有效,假设您正确显示%var%%var%。

文件名在比较opreator的两侧被qu Qu,这样如果其中一个变量包含一个分隔符(如空格),那么该字符串将被解释为单个项目。 copy命令的注释相同。 neq运算符表示not equal。请注意,必须将目标命令放在与if相同的行上。格式非常严格,如果您愿意,可以分布在多行中,但在这种情况下必须遵循以下格式:

if something operator somethingelse (
 dothis
) else (
 dothat
)

运营商必须是 == equ neq gtr lss 之一 geq leq ;如果您愿意,else子句是可选的,并且闭括号可以与匹配的左括号在同一行。