Можем ли мы сравнить два файла с датой и найти более новую дату - PullRequest
0 голосов
/ 01 мая 2019

У меня есть 2 текстовые файлы, один на локальном ПК, а другой на сервере. (файлы хранят только дату выпуска, например, 02/02/2018) .

Я хочу написать , чтобы проверить, является ли текстовый файл на сервере более новой датой, чем дата на компьютере пользователя, и загрузить новые файлы с сервер на этом основании.

Я использовал , и он отлично работает, но проблема в том, чтобы поддерживать более новый набор файлов.

Пожалуйста, сообщите, если это возможно.

1 Ответ

0 голосов
/ 02 мая 2019

Ваша дата выборки неоднозначна.

Чтобы сравнить дату (без преобразования в тип даты / времени или сериал), вам нужно заказать ее по гггг, мм, дд.

Каким будет ваш 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
...