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
)
其中,操作员必须是==EQgeqleq之一;else
子句是可选的,如果愿意,右括号可以与匹配的开括号在同一行 在代码中,有三个文本文件:np.txt
,lastplayed.txt
,和justplayed.txt
。这是一个错误,还是你需要这三者都存在?