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

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

Ответить
Настройки темы
CMD/BAT - [решено] узнать размер папок. экспорт в txt

Старожил


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

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


Изменения
Автор: shadowbat
Дата: 21-05-2010
как реализовать через bat либо vbs

чтобы узнать полный размер всех папок, которые находятся с .bat в одной папке.
и сохранить список размеров по порядочку в txt (без названия папок. просто столбик размеров в Мб (желательно) либо в Кб)

как сделать чтобы полный размер папок считался так, как будто я на нее в винде нажал alt+enter

Отправлено: 20:36, 21-05-2010

 

Пользователь


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

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


работает батник, только слишком много информации, выводит все подпапки, абсолютно все

Но если речь зашла о батнике, Вы не могли бы выложить код батника, который посчитает размер как и предоставленный Вами vbs
размер каждой папки в директории ну и в конце(в начале) размер этого каталога

баником удобнее будет

Отправлено: 18:11, 10-11-2018 | #21



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

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


Ветеран


Contributor


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

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


palexa, Ломать - не строить, душа не болит. Закомментируйте строку
Код: Выделить весь код
rem	For /F "usebackq delims=" %%d IN (`2^>nul Dir %1 /B /A:D`) DO Call :Out "%~1\%%d" %2- "%~3%Marg%"
Кстати, подправил код: корректнее в выделенной строке параметр взять в кавычки.
Добавил /A в выделенной строке.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 10-11-2018 в 20:29.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:00, 10-11-2018 | #22


Пользователь


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

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


Кстати, что бы читать нормально файл блокнотом, пришлось добавить кодировку в строку
Код: Выделить весь код
For /F "usebackq delims=" %%z IN (`2^>nul chcp 1251^& Dir %1 /S /A`) DO Set ZZ=!Z1! &Set Z1=%%z

Отправлено: 05:50, 11-11-2018 | #23


Ветеран


Contributor


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

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


palexa, а почему бы не добавить
chcp 1251 >nul
в самое начало батника, третей строкой, а не внутрь цикла. При этом, естественно, и сам батник сохранить в 1251 при наличии кириллицы в задаваемых путях?

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 11-11-2018 в 06:51.


Отправлено: 06:44, 11-11-2018 | #24


Ветеран


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

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


Лучше обзавестись вменяемым средством для работы с поддержкой различных кодировок.

Отправлено: 07:14, 11-11-2018 | #25


Пользователь


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

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


ещё хочу спросить, как в этом батнике сделать что бы он не переписывал файл, а дописывал строки ниже

Отправлено: 11:07, 11-11-2018 | #26


Ветеран


Contributor


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

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


palexa, вместо
>"%Out%" Echo %iSize% %BoxIn%
>>"%Out%" Echo %iSize% %BoxIn%
А еще лучше им не пользоваться - по сравнению с VBS медленно.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 12:01, 11-11-2018 | #27


Пользователь


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

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


спасибо

Заметил что на много медленнее, но пока устроит

Отправлено: 12:22, 11-11-2018 | #28


Ветеран


Contributor


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

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


palexa,
Вот вариант: гибрид bat и js, работает многократно быстрее голимого CMD, можно получить байты, килобайты, мегабайты, гигабайты
Код: Выделить весь код
@set @E=1; /*

@Echo Off
	CHCP 1251 >nul
	Set "BoxIn=D:\Мой контент"

	Set  "Out=D:\Мой контент байт.inf"
	Set "Out1=D:\Мой контент килобайт.inf"
	Set "Out2=D:\Мой контент мегабайт.inf"
	Set "Out3=D:\Мой контент гигабайт.inf"

	>>"%Out%"  Call :InDir "%BoxIn%"
	>"%Out1%" Call :InDir "%BoxIn%" 1
	>"%Out2%" Call :InDir "%BoxIn%" 2
	>"%Out3%" Call :InDir "%BoxIn%" 3
Pause
GoTo :Eof

:InDir
	FOR /F "usebackq delims=" %%z IN (`Cscript //NoLogo /E:jscript "%~dpnx0" "%~1" "%~2"`) DO Call :Out "%%z" "%~1" "%~2"
	For /F "usebackq delims=" %%d IN (`2^>nul Dir "%~1" /B /A:D`) DO (
		FOR /F "usebackq delims=" %%z IN (`Cscript //NoLogo /E:jscript "%~dpnx0" "%~1\%%d" "%~2"`) DO Call :Out "%%z" "%%d" "%~2"
	)
GoTo :Eof

:Out
SetLocal
	Set "S=             %~1"
	Set "S=%S:~-12%"
	If "%~3"=="1" Set "S=%S:~-9%"
	If "%~3"=="2" Set "S=%S:~-6%"
	If "%~3"=="3" Set "S=%S:~-3%"
	Echo %S% %2
EndLocal
GoTo :Eof

*/

var oArg = WScript.Arguments;
if (oArg.Count() < 1) {
	WScript.Echo("Arguments absent");
	WScript.Quit(1);
}

var FSO=WScript.CreateObject("Scripting.FileSystemObject");

if (!FSO.FolderExists(oArg(0))) {
	WScript.Echo(oArg(0) + " not found");
	WScript.Quit(2);
}

try {var sFold=FSO.GetFolder(oArg(0)).Size}
	catch (err) {if (err != 0) {
			WScript.Echo(oArg(0)+" "+err.description);
			WScript.Quit(3)}
			}
if (oArg.Count() == 2) {
	if (oArg(1)==1) sFold = Math.round(sFold/1024); 
	if (oArg(1)==2) sFold = Math.round(sFold/1024/1024); 
	if (oArg(1)==3) sFold = Math.round(sFold/1024/1024/1024); 
}

WScript.Echo(sFold);
WScript.Quit(0)
Обратите внимание, здесь сделана возможность выдавать размер папки в разных единицах. В этом примере - 4 выходных файла. Оставьте вызов только одного варианта. Чтобы выходной файл дописывался, вместо > рисуйте >>

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:15, 11-11-2018 | #29


Пользователь


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

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


Спасибо, попробую

Отправлено: 19:24, 11-11-2018 | #30



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Размер папок NIC444 Microsoft Windows 7 5 15-09-2014 09:32
Отображаемый размер квотируемых папок rrev Microsoft Windows NT/2000/2003 7 29-09-2009 09:46
[решено] Вставить строчку из одного txt в оределённое место другого txt ZeroCrash AutoIt 7 13-07-2009 07:35
Ограничения на размер профиля+исключение папок из профиля Grug Microsoft Windows NT/2000/2003 2 04-03-2009 11:09
Доступ - Ограничение на размер папок Xavier Teodonius Microsoft Windows 2000/XP 2 10-04-2008 12:12




 
Переход