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

Аватара пользователя
wonted

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

Сообщение wonted »

Здравствуйте, забрел вот недавно на Ваш ресурс, пересмотрел кучу подобного материала, и к сожалению не смог решить свою задачу. Надеюсь на помощь а не осуждение. Заранее огромное спасибо.

Задача:

есть сетевая папка в вложенными под папками \\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

*Путь к файлу хотя бы, оптимально путь к файлу + размер
Аватара пользователя
Iska

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

Сообщение Iska »

Код:

Код: Выделить всё

@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^
Аватара пользователя
wonted

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

Сообщение wonted »

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

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

Сообщение gora »

А, недоглядел:


Цитата wonted:



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




добавьте вывод, как у коллеги:


Цитата gora:





Код:

Код: Выделить всё

… Echo %%i %%~zi …

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





Цитата wonted:



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




Сохраните пакетный файл в кодировке OEM/866. Вывод будет в той же кодировке. Это нормально. Для корректного отображения используйте редактор, который понимает эту кодировку.
Аватара пользователя
wonted

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

Сообщение wonted »

Цитата Iska:



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




прошу прощения но похоже даже в копиосте умудряюсь допустить ошибки)



Код:

Код: Выделить всё

@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 блокнот
Аватара пользователя
Iska

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

Сообщение Iska »

к сожалению возникла новая проблема



Код:

Код: Выделить всё

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+ мб парочку точно нашлось бы. Возможно у кого есть идеи или догадки?

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

Вернуться в «Скриптовые языки администрирования Windows»