所以我有一个程序将游戏中的当前歌曲输出到文本文件中 现在我想要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全新,只是尽我所能。 如果我完全搞砸了,请纠正我。
提前谢谢你。
答案 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
子句是可选的,并且闭括号可以与匹配的左括号在同一行。