Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2017, 12:09   #1
Vera94
 
Регистрация: 30.05.2017
Сообщений: 6
Восклицание Вывести файлы созданные в заданном месяце

Здравствуйте, помогите, пожалуйста. Я выбрала из даты месяц так:
For /f "skip=1 tokens=4 delims=. " %%a in ('echo. ^| date') do @echo %%a
Подскажите, пожалуйста, как теперь сравнить этот месяц с месяцами файлов в этом каталоге, и вывести те файлы, у которых месяц создания равен этому месяцу. (код WinBatch)
Vera94 вне форума Ответить с цитированием
Старый 30.05.2017, 12:30   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Ну самое простое - получить из атрибутов дату создания файлов и проверить её попадание в диапазон между (включительно) 01.<ваш месяц>.<год> и (не включая) 01.<Ваш месяц + 1>.<Год>. И не забыть, что предстоит отдельная возня с декабрём.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 30.05.2017, 12:38   #3
Vera94
 
Регистрация: 30.05.2017
Сообщений: 6
По умолчанию

Спасибо. Не могли бы вы, пожалуйста, написать пример как получить из атрибутов дату создания файлов.
Vera94 вне форума Ответить с цитированием
Старый 30.05.2017, 13:00   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Вроде так:

Код:
dir 123.txt /T:C покажет дату создания.
dir 123.txt /T:W покажет дату изменения.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 30.05.2017, 13:02   #5
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Ещё можно так:

Код:
@echo off
 
set "sourcePath=C:\123.txt"
 
:: Получение даты и времени модификации файла:
for %%i in ("%sourcePath%") do (
 for /f "tokens=1-5 delims=.: " %%j in ("%%~ti") do (
  set mydate=%%l.%%k.%%j
  set mytime=%%m-%%n
 )
)
echo %mydate%
echo %mytime%
 
echo.
 
:: Получение даты и времени создания файла:
for /f "tokens=1-5 delims=.: " %%j in ('
 dir/a-d/tc "%sourcePath%"^| findstr/rc:"^[^ ]"
') do (
 set mydate=%%l.%%k.%%j
 set mytime=%%m-%%n
)
echo %mydate%
echo %mytime%
 
pause>nul
Кстати, в этом примере можно просто сравнивать месяц %%k с вашим месяцем на равенство - намного проще получится
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 30.05.2017, 14:36   #6
Vera94
 
Регистрация: 30.05.2017
Сообщений: 6
По умолчанию

Спасибо
Vera94 вне форума Ответить с цитированием
Старый 30.05.2017, 14:36   #7
Vera94
 
Регистрация: 30.05.2017
Сообщений: 6
По умолчанию

Во втором примере ":: Получение даты и времени создания файла:" как прописать не для определенного файла, а чтобы все файлы проверялись в каталоге?
Vera94 вне форума Ответить с цитированием
Старый 30.05.2017, 15:06   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Vera94 Посмотреть сообщение
Во втором примере ":: Получение даты и времени создания файла:" как прописать не для определенного файла, а чтобы все файлы проверялись в каталоге?
попробуйте так:
Код:
set "sourcePath=C:\ВашКаталог\*.txt"
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.05.2017, 15:23   #9
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
set "sourcePath=C:\ВашКаталог\*.txt "
Строго говоря, для всех файлов в каталоге нужно указать маску *.*
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 30.05.2017, 15:37   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
Строго говоря, для всех файлов в каталоге нужно указать маску *.*
да, да, согласен.
я почему-то решил, что TC интересуют только txt файлы...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить файлы созданные тестом DD Illusiony Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 1 19.05.2016 02:37
C++ Определить среднедневное количество осадков в заданном месяце ryudo Помощь студентам 0 21.03.2016 19:21
в заданном массиве вывести все четные числа leysan Помощь студентам 2 09.12.2009 22:08
нужно вывести кол-во покупаемых товаров по месяцам(т.е сколько было куплено в том или ином месяце) apelset Microsoft Office Excel 5 20.05.2009 19:09