我有2
个纯文本文件,一个在本地PC上,另一个在服务器上。 (文件仅存储发布日期,例如02/02/2018
)。
我想写一个windows batch-file来检查服务器上的文本文件是否比用户计算机上的日期新,并基于此从服务器下载新文件。 / p>
我使用过fc,它工作正常,但需要注意的是维护新的文件集。
请告知是否可以实现。
答案 0 :(得分:0)
您的采样日期不明确。
要比较日期(不转换为日期时间类型或序列号),您需要按yyyy,MM,dd排序。
您的02/02/2018
意为MM/dd/yyyy
是什么?还是dd/MM/yyyy
?
:: Q:\Test\2019\05\02\SO_55934933.cmd
@Echo off
Call :GetDate Srv "\\server\share\folder\file.txt"
Call :GetDate PC "X:\folder\file.txt"
if not defined Srv (Echo couldn't obtain server date &pause&Exit /b 1)
if not defined PC (Echo couldn't obtain local PC date&pause&Exit /b 1)
if %Srv% geq %PC% (
Echo Server date %Srv% newer or equal to PC date %PC%
) else (
Echo Server date %Srv% older than PC date %PC%
)
Goto :Eof
:GetDate and reverse order
set /p "Dt="<%2
:: assuming dd/MM/yyyy
For /f "tokens=1-3delims=/" %%D in ("%DT%") Do Set "%1=%%F%%E%%D"
:: assuming dd/MM/yyyy
:: For /f "tokens=1-3delims=/" %%D in ("%DT%") Do Set "%1=%%F%%D%%E"
该批处理包含两个变体,MM/dd/yyyy
已被注释掉。
示例输出:
> Q:\Test\2019\05\02\SO_55934933.cmd
Server date 20180203 newer or equal to PC date 20180202