每天都会自动创建一个名为articles.txt的文档。
我必须对文档进行一些更改。
更改完成后,文档名为articles_Final + date.txt
例如:articles_Final_2016_01_07.txt
然后将文档移动到目录"。 \ HISTO \ FINAL"。
我必须比较最后创建的两个文档,并在新文档result.txt
中写下差异我告诉你我的代码找到最后两个文件
@echo off & cls
SETLOCAL EnableDelayedExpansion
set "Dossier=.\HISTO\Final"
set /a "n=0, limit=2"
for /F "delims=" %%a in ('dir /B /A-D /O-D /T:W "%Dossier%\*.*"') do (
echo "%%a"
2>nul set /a "n+=1, 1/(limit-n)"||goto :break
)
:break
pause
exit
和le代码比较这两个文件 在这里,我写了他们的名字,但我想找到自动编写我的第一个代码的结果的方法
findstr /v /g:articles_Final_2016_01_04.txt articles_Final_2016_02_04.txt >result.txt
答案 0 :(得分:1)
@echo off
cls
SETLOCAL EnableDelayedExpansion
set "Dossier=.\HISTO\Final"
set /a "n=0, limit=2"
for /F "delims=" %%a in ('dir /B /A-D /O-D /T:W "%Dossier%\*.*"') do (
echo "%%a"
set "file[!n!]=%%a"
2>nul set /a "n+=1, 1/(limit-n)"||goto :break
)
:break
set file
echo findstr /v /g:%Dossier%\%file[0]% %Dossier%\%file[1]%
pause
exit
(未试过)
findstr
命令只是echo
- 您需要检查它并重定向输出。
set file
命令只是显示以file
开头的所有变量的一种方式。
答案 1 :(得分:0)
这里是最终的解决方案
@echo off
cls
SETLOCAL EnableDelayedExpansion
set "Dossier=.\HISTO\FINAL"
set /a "n=0, limit=2"
for /F "delims=" %%a in ('dir /B /A-D /O-D /T:W "%Dossier%\*.*"') do (
echo "%%a"
set "file[!n!]=%%a"
2>nul set /a "n+=1, 1/(limit-n)"||goto :break
)
:break
set file
findstr /v /g:%Dossier%\%file[0]% %Dossier%\%file[1]% >>difference.txt
::fc /L %Dossier%\%file[0]% %Dossier%\%file[1]% >>difference.txt
pause
exit