Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Проверка файлов в сетевом каталоге, и создание списка из тех которые по размеру < N

Ответить
Настройки темы
CMD/BAT - Проверка файлов в сетевом каталоге, и создание списка из тех которые по размеру < N

Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: wonted
Дата: 13-03-2014
Здравствуйте, забрел вот недавно на Ваш ресурс, пересмотрел кучу подобного материала, и к сожалению не смог решить свою задачу. Надеюсь на помощь а не осуждение. Заранее огромное спасибо.
Задача:
есть сетевая папка в вложенными под папками \\some_dir\local_dir\
необходимо просканировать эту папку, все под папки на предмет наявности фалов размеров свыше N байт
необходимо полученный результат* дописать в лог файл лежащий под боком у батника
вот что имеется, выдрано из этого форума, но там вместо логирования шло удаление, теперь от %%i похоже получаю ссылку на файл и он открывается, а моя задача эту ссылку поместить в лог файл.
Код: Выделить весь код
for /f "delims=" %%i in ('dir "E:\Downloads" /b /s /a-d') do if %%~zi gtr 50000000 %%i>>poisk.txt
п.с. прошу прощения если кого то обидел познаниями cmd/bat
*Путь к файлу хотя бы, оптимально путь к файлу + размер

Отправлено: 14:09, 13-03-2014

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sRootFolder=\\some_dir\local_dir
set /a lLimit = 50*1^<^<20

if exist "%sRootFolder%\." (
	>"poisk.txt" (
		for /f "usebackq delims=" %%i in (
			`dir "%sRootFolder%\*.*" /b /s /a:-d`
		) do if %%~zi gtr %lLimit% echo %%i
	)
) else (
	echo Can't find root folder [%sRootFolder%].
	exit /b 1
)

endlocal
exit /b 0
«50*1^<^<20» — «50×2²⁰», 50 Мб.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:39, 13-03-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата wonted:
оптимально путь к файлу + размер »
Код: Выделить весь код
@Echo Off
(for /f "delims=" %%i in ('dir "E:\My Downloads" /b /s /a-d') do if %%~zi gtr 50000000 Echo %%i %%~zi)>>poisk.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:49, 13-03-2014 | #3


Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо огромное! Все работает, осталось подружить с кириллицей, но это все мелочи

Отправлено: 14:53, 13-03-2014 | #4


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


А, недоглядел:
Цитата wonted:
+ размер »
добавьте вывод, как у коллеги:
Цитата gora:
Код: Выделить весь код
… Echo %%i %%~zi
»
Цитата wonted:
осталось подружить с кириллицей, »
Сохраните пакетный файл в кодировке OEM/866. Вывод будет в той же кодировке. Это нормально. Для корректного отображения используйте редактор, который понимает эту кодировку.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:53, 13-03-2014 | #5


Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
%%i %%~zi »
прошу прощения но похоже даже в копиосте умудряюсь допустить ошибки)
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sRootFolder=E:\Downloads
set /a lLimit = 50*1^<^<20

if exist "%sRootFolder%\." (
	>"poisk.txt" (
		for /f "usebackq delims=" %%i in (
			`dir "%sRootFolder%\*.*" /b /s /a:-d`
		) do if %%~zi gtr %lLimit% echo %%i %%~zi
	)
) else (
	echo Can't find root folder [%sRootFolder%].
	exit /b 1
)

endlocal
exit /b 0
результат, до того как втулил параметр работало, а сейчас все файлы кидает
Код: Выделить весь код
E:\>if 73820995 GTR 52428800 echo E:\Downloads\111.zip 73820995 
E:\Downloads\111.zip 73820995

E:\>if 159281 GTR 52428800 echo E:\Downloads\Manual.pdf 159281 

E:\>if 992864 GTR 52428800 echo E:\Downloads\Msvbvm50.exe 992864 

E:\>if 702253 GTR 52428800 echo E:\Downloads\msvbvm50.zip 702253 

E:\>if 73820995 GTR 52428800 echo E:\Downloads\Ќ®ў*п Ї*ЇЄ*\111.zip 73820995 
E:\Downloads\Ќ®ў*п Ї*ЇЄ*\111.zip 73820995

E:\>if 159281 GTR 52428800 echo E:\Downloads\Ќ®ў*п Ї*ЇЄ*\Manual.pdf 159281 

E:\>if 992864 GTR 52428800 echo E:\Downloads\Ќ®ў*п Ї*ЇЄ*\Msvbvm50.exe 992864 

E:\>if 702253 GTR 52428800 echo E:\Downloads\Ќ®ў*п Ї*ЇЄ*\msvbvm50.zip 702253 

E:\>if 73820995 GTR 52428800 echo E:\Downloads\Ќ®ў*п Ї*ЇЄ*\Ќ®ў*п Ї*ЇЄ*\111.zip 73820995 
E:\Downloads\Ќ®ў*п Ї*ЇЄ*\Ќ®ў*п Ї*ЇЄ*\111.zip 73820995

E:\>if 159281 GTR 52428800 echo E:\Downloads\Ќ®ў*п Ї*ЇЄ*\Ќ®ў*п Ї*ЇЄ*\Manual.pdf 159281 

E:\>if 992864 GTR 52428800 echo E:\Downloads\Ќ®ў*п Ї*ЇЄ*\Ќ®ў*п Ї*ЇЄ*\Msvbvm50.exe 992864 

E:\>if 702253 GTR 52428800 echo E:\Downloads\Ќ®ў*п Ї*ЇЄ*\Ќ®ў*п Ї*ЇЄ*\msvbvm50.zip 702253
п.с. понял что дело в echo, вся строка отмечается как текст...

оишбка была в кодировке, осталось найти OEM/866 блокнот

Последний раз редактировалось wonted, 13-03-2014 в 15:19.


Отправлено: 15:05, 13-03-2014 | #6


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Iska, а почему не
Код: Выделить весь код
set /a lLimit = 50^<^<20
?
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:18, 13-03-2014 | #7


Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Огромное спасибо парни! Вопрос полностью решен!
Может кому понадобится...
Итоговый код:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sRootFolder=E:\Downloads
set /a lLimit = 50*1^<^<20

if exist "%sRootFolder%\." (
	>"poisk.txt" (
		for /f "usebackq delims=" %%i in (
			`dir "%sRootFolder%\*.*" /b /s /a:-d`
		) do if %%~zi gtr %lLimit% echo %%i %%~zi )
) else (
	echo Can't find root folder [%sRootFolder%].
	exit /b 1
)

endlocal
exit /b 0
Результат работы:
Код: Выделить весь код
E:\Downloads\111.zip 73820995 
E:\Downloads\Новая папка\111.zip 73820995 
E:\Downloads\Новая папка\Новая папка\111.zip 73820995
Цитата Georgio:
50*1^<^<20 »
исходя из математики должно отработать...
так и получилось, выдает идентичный ответ

Отправлено: 15:24, 13-03-2014 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Georgio:
Iska, а почему не »
Просто для понятности. «a на b в степени n» привычней.

Отправлено: 16:16, 13-03-2014 | #9


Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


к сожалению возникла новая проблема
Код: Выделить весь код
Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

C:\Users\it_support>E:\поиск.bat
Имя папки \\192.168.8.10\public\Проверить на сохранение\Мероприятия\лучшая школа
 России\нарезать1\нарезка для конкурса Образование\9Дополнительная информация и
приложения к Программе развития\17 дополнительные материалы к паспорту образоват
ельного учреждения\дополнительная информация об образовательном учреждении слишк
ом длинно.
Имя папки \\192.168.8.10\public\Проверить на сохранение\Мероприятия\лучшая школа
 России\нарезка для конкурса Образование\9Дополнительная информация и приложения
 к Программе развития\17 дополнительные материалы к паспорту образовательного уч
реждения\дополнительная информация об образовательном учреждении слишком длинно.
и как результат файл пуст батник висит, файлов конечно жутко много, но за пару часов думаю 50+ мб парочку точно нашлось бы. Возможно у кого есть идеи или догадки?
п.с. предполагаю что из за ошибки он попросту остановился на последнем каталоге, т.е. на каталоге с ошибкой

Отправлено: 09:35, 14-03-2014 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Проверка файлов в сетевом каталоге, и создание списка из тех которые по размеру < N

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Создание списка из файлов mp3 vvvv555666 Скриптовые языки администрирования Windows 5 24-06-2013 10:31
Любой язык - Скрипт для распределения файлов по папкам кучками по n-ому размеру DmitryAnatolich Скриптовые языки администрирования Windows 9 06-05-2013 15:20
VBS/WSH/JS - Копирование файлов по сети на PC из списка. HattabbI4 Скриптовые языки администрирования Windows 8 28-03-2013 14:34
CMD/BAT - [решено] Создание файлов из списка в txt kasik Скриптовые языки администрирования Windows 1 15-01-2011 20:04
CMD/BAT - [решено] Перемещение файлов по количеству из списка shadowbat Скриптовые языки администрирования Windows 9 29-08-2010 15:36




 
Переход