Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Пакетные файлы : вывод списка файлов, созданных в первом полугодии / 10 сообщений из 10, страница 1 из 1
24.01.2012, 14:22
    #37628841
ivanov-void
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакетные файлы : вывод списка файлов, созданных в первом полугодии
Приветствую!

Столкнулся с проблемой- нужно вывести все файлы заданной директории, созданные в первом полугодии указанного года. Собственно, вопрос - как задать диапазон месяцев. Следующий код выводит список файлов, созданных в указанном году:

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
@ECHO off 
CLS

SET /p dirName="Enter directory: " 
SET /p yearValue="Enter year: "

for /f "tokens=1,2,3,*" %%i in ('dir %dirName% /T:C /A:-D /O:N') do (^
	for /f "tokens=1,2,3 delims=." %%a in ('echo %%i') do (^
		if not "%%b"=="" (^
			if not %%a=="" (^
				if not %%b=="" (^
					if %%c==%yearValue% (^						
							echo %%a.%%b.%%c  %%j:  %%l 						
						)
					)
				)
			)
		)
	)
)	

PAUSE
EXIT



Буду весьма признателен за информацию.
...
Рейтинг: 0 / 0
24.01.2012, 14:39
    #37628888
ivanov-void
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакетные файлы : вывод списка файлов, созданных в первом полугодии
Понятно, что можно организовать большое число вложенных проверок, например -

Код: powershell
1.
2.
3.
...
if %%b==01 ....
...



..однако хотелось бы более элегантного решения.
...
Рейтинг: 0 / 0
24.01.2012, 16:16
    #37629201
ivanov-void
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакетные файлы : вывод списка файлов, созданных в первом полугодии
Не самое лучшее решение, конечно, но, возможно, кому- нибудь пригодится.
Если кому известны более интересные решения - был бы весьма признателен за информацию.

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
@ECHO off 

:input
cls
set /p start="start search? (y/n): "
if %start%==y (goto search) else (goto end)

:search
set fflag=0
set /p dirname="enter directory: "
set /p yearvalue="enter year: "

echo.
for /f "tokens=1,2,3,*" %%i in ('dir %dirname% /T:C /A:-D /O:N') do (^
	for /f "tokens=1,2,3 delims=." %%a in ('echo %%i') do (^
		if not "%%b"=="" (^
			if not %%a=="" (^
				if not %%b=="" (^
					if %%c==%yearvalue% (^
							if %%b==01 (^
								set fflag=1
								echo %%a.%%b.%%c  %%j:  %%l
							) else (^
								if %%b==02 (^
									set fflag=1
									echo %%a.%%b.%%c  %%j:  %%l
								) else (^
									if %%b==03 (^
										set fflag=1
										echo %%a.%%b.%%c  %%j:  %%l
									) else (^
										if %%b==04 (^
											set fflag=1
											echo %%a.%%b.%%c  %%j:  %%l
										) else (^
											if %%b==05 (^
												set fflag=1
												echo %%a.%%b.%%c  %%j:  %%l
											) else (^
												if %%b==06 (^
													set fflag=1
													echo %%a.%%b.%%c  %%j:  %%l
												)																									
											)
										)
									)
								)
							)
						) 
					)
				)
			)
		)
	)
)	

if %fflag%==1 (goto ffound) else (goto nffound)

:ffound
echo file's found
echo.
pause
goto input;

:nffound
echo file's not found
echo.
pause
goto input;

:end
pause
exit
...
Рейтинг: 0 / 0
24.01.2012, 17:14
    #37629349
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакетные файлы : вывод списка файлов, созданных в первом полугодии
Мне непонятно, почему для решения задачи выбран столь неподходящий инструмент как пакетная обработка? почему не использовать, например, VBS-скрипт? там уж точно не будет такого многоэтажного безобразия...

Я уж не говорю о том, что поиск ведётся не по дате создания (как заявлено в сабже), а по дате последней модификации. А это, как говорят в Одессе, две большие разницы...
...
Рейтинг: 0 / 0
24.01.2012, 17:25
    #37629375
ivanov-void
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакетные файлы : вывод списка файлов, созданных в первом полугодии
Приветствую, Akina!

Спасибо за информацию относительно альтернативных вариантов!
Однако задача сформулирована именно в контексте применения командного процессора Windows.
Дата последней модификации - это атрибут W.
...
Рейтинг: 0 / 0
24.01.2012, 18:25
    #37629551
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакетные файлы : вывод списка файлов, созданных в первом полугодии
ivanov-voidПриветствую, Akina!

Спасибо за информацию относительно альтернативных вариантов!
Однако задача сформулирована именно в контексте применения командного процессора Windows.
Дата последней модификации - это атрибут W.
Взял хотя-бы порт Linux-ового find и в одну строчку решил-бы задачу.

А этот эпичный код достоин занесения в луркмоар.
...
Рейтинг: 0 / 0
24.01.2012, 18:35
    #37629576
ivanov-void
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакетные файлы : вывод списка файлов, созданных в первом полугодии
Приветствую, mayton!

Попробую с find, спасибо.
...
Рейтинг: 0 / 0
24.01.2012, 19:04
    #37629632
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакетные файлы : вывод списка файлов, созданных в первом полугодии
ivanov-voidзадача сформулирована именно в контексте применения командного процессора Windows.
Домашнее задание в институте, что ли?

ivanov-voidДата последней модификации - это атрибут W.
Да, просмотрел. Сорри.
...
Рейтинг: 0 / 0
26.01.2012, 00:29
    #37631884
kosh the best
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакетные файлы : вывод списка файлов, созданных в первом полугодии
=^_^=
Код: powershell
1.
2.
set /p year=[year?]
dir /A:-D /T:C | findstr /r "^[0-3][0-9]\.0[1-6]\.%year%"
...
Рейтинг: 0 / 0
27.01.2012, 00:54
    #37634223
ivanov-void
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакетные файлы : вывод списка файлов, созданных в первом полугодии
Приветствую, kosh the best!

Шикарное решение.
Благодарю!
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Пакетные файлы : вывод списка файлов, созданных в первом полугодии / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]