Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
Kompius
0 / 0 / 0
Регистрация: 20.10.2014
Сообщений: 3
1

Сравнение даты создания

20.10.2014, 17:19. Просмотров 3167. Ответов 5
Метки нет (Все метки)

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

Bash
1
2
3
4
5
@echo off
cd C:\Users\Admin\Desktop\1213
set today=%date:~6,4%_%date:~3,2%_%date:~0,2% 
for %I in (111.trn) do ( set str=%I
if %str%==%today% (echo 1) else (echo 0))
получилось так, но это не работает...помогите пожалуйста разобраться, соседние темы читал, поиском пользовался...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2014, 17:19
Ответы с готовыми решениями:

Сравнение даты создания файла с текущей датой
Добрый день! Помогите пожалуйста допилить скрипт: for %%i in ("myfile") do echo %%~ti ...

Сравнение даты создания файла с заданной датой
Здравствуйте! Подскажите пожалуйста возможно ли решить мою проблему... Мне нужно отобрать файлы из...

Изменение даты и времени создания файлов
Нужно написать батник, который будет менять дату и время создания файлов. Файлы могут быть указаны...

Проверка даты в файле на сетевом ресурсе и сравнение ее с текущей
Подскажите, как можно сделать проверку даты в файле на сетевом ресурсе и сравнение ее с текущей....

Вывод на экран консоли только имени и даты создания файла
Здравствуйте, необходимо вывести на экран консоли имена и даты создания файлов, содержащих атрибут...

5
loban_ser
100 / 58 / 15
Регистрация: 29.01.2014
Сообщений: 113
20.10.2014, 18:07 2
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
cd C:\Users\Admin\Desktop\1213
set today=%date:~6,4%_%date:~3,2%_%date:~0,2% 
for %%I in (111.trn) do (set str=%%~tI
set yy=%str:~6,4%
set mon=%str:~3,2%
set day=%str:~0,2%
set str=%yy%_%mon%_%day%
)
 
if %str%==%today% (echo 1) else echo 0
Pause >NUL
Exit /B
0
ComSpec
3410 / 1954 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
20.10.2014, 21:28 3
Лучший ответ Сообщение было отмечено Kompius как решение

Решение

Цитата Сообщение от Kompius Посмотреть сообщение
как сравнить дату создания файла с текущей датой?


Не дату создания, а дату изменения.


Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echo off
 
cd /d "C:\Users\Admin\Desktop\1213"
 
for %%i in ("111.trn") do (
 for /f %%j in ("%%~ti") do (
  if %%j==%date% (
   echo 1
   ) else (
   echo 0
   )
  )
 )
 
pause>nul
exit /b
Добавлено через 3 часа 13 минут
Но если всё-таки хотите сравнивать текущую дату с датой создания файла, то тогда так:


Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echo off
 
cd /d "C:\Users\Admin\Desktop\1213"
 
for /f %%i in ('
 mshta "javascript:x=new ActiveXObject('Scripting.FileSystemObject');x.GetStandardStream(1).Write(x.GetFile("111.trn").DateCreated);close();"^| more
') do (
 if %%i==%date% (
  echo 1
  ) else (
  echo 0
  )
 )
 
pause>nul
exit /b

.
1
Kompius
0 / 0 / 0
Регистрация: 20.10.2014
Сообщений: 3
22.10.2014, 13:05  [ТС] 4
да, Вы были правы, надо было все же с датой изменения. Спасибо большое.
Вот еще вопросик.... Есть файл с именем " name_fail_2014_10_22_2010.bak" , вот теперь вопрос, как сравнить текущую дату с частью имени файла?
Написал такое, но оно как-то не корректно работает... бывает, что даже когда файла нет он возвращает 1

Bash
1
2
3
4
5
6
7
@echo on
set directorypath=D:\
set today=%date:~6,4%_%date:~3,2%_%date:~0,2% 
cd %directorypath%
set pathf = dir /b | findstr /R "name_fail_%today%.*.bak"
echo %today%
if exist "%directorypath%\%pathf%" (echo 1) else (echo 0)
Помогите разобраться в чем причина..или может есть другое решение данной задачи?
0
ComSpec
3410 / 1954 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
22.10.2014, 13:31 5
Лучший ответ Сообщение было отмечено Kompius как решение

Решение

Bash
1
2
3
4
5
6
7
8
9
10
11
@echo off
 
set "directorypath=D:\"
set today=%date:~6,4%_%date:~3,2%_%date:~0,2%
 
cd /d "%directorypath%"
echo %today%
if exist "name_fail_%today%*.bak" (echo 1) else (echo 0)
 
pause>nul
exit /b
1
Kompius
0 / 0 / 0
Регистрация: 20.10.2014
Сообщений: 3
22.10.2014, 14:44  [ТС] 6
Спасибо ,Вам, огромное, добрый человек)
0
22.10.2014, 14:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2014, 14:44

Распределение по папкам и переименование JPG-файлов на основе даты их создания или модификации
В папке много .jpg файлов, хочется организовать их исходя из Даты Создания (Модификации) в...

Организовать поиск файлов в директории по атрибутам текущей даты создания (день, месяц, год)
Задача, организовать поиск файлов в директории по атрибутам текущей даты создания (день месяц год)...

Записать в текстовый файл даты создания и имена файлов, размер которых меньше заданного
Добрый вечер, можно пожалуйста попросить Вас решить задачку, кому не сложно. Буду очень благодарен....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru