Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Скрипт вывода имен файлов. (https://javascript.ru/forum/misc/33913-skript-vyvoda-imen-fajjlov.html)

ratratrat 13.12.2012 22:21

Скрипт вывода имен файлов.
 
Добрый день! Помогите пожалуйста, нужен скрипт вывода имен файлов папки по возрастанию размера. Спасибо заранее!

pikko 14.12.2012 05:22

у javascript нет доступа к файловой системе

lord2kim 14.12.2012 10:31

ratratrat, смотря где...если на сервере, то это на PHP нужно писать
если на клиенте, то только с Windows и в IE, используя ActiveX-объект FileSystemObject

ratratrat 14.12.2012 11:57

Файл .JS или .JSE на клиентской машине, при открытии которого должно быть:

вывод имен файлов папки по возрастанию размера

Папка указывает заранее в скрипте.

ratratrat 14.12.2012 11:59

Цитата:

Сообщение от lord2kim (Сообщение 221249)
ratratrat, смотря где...если на сервере, то это на PHP нужно писать
если на клиенте, то только с Windows и в IE, используя ActiveX-объект FileSystemObject

Знал бы еще! Помоги написать пожалуйста!

lord2kim 14.12.2012 13:10

ratratrat,
var folderaddress = "C:/"; // имя папки из которой будет происходить считывание файлов
   var fso, f, fc, s = "", ar = [], obj = {}, i = 0;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFolder(folderaddress); 		
   fc = new Enumerator(f.files); 		
   for (; !fc.atEnd(); fc.moveNext()) {
		obj[fc.item().size] = fc.item().Name;
		ar[i] = fc.item().size;
		i++;
   }
	
	ar.sort(function(a,b){return a-b;});
	
	for (i=0; i < ar.length; i++) {
		s += obj[ar[i]]+"\n";
	}
	
	WScript.Echo(s);

ratratrat 14.12.2012 14:19

lord2kim,
огромное спасибо! Это вывод имен файлов папки по возрастанию размера? То есть от меньшего файла к большему?

Как тут на форуме ставить + ?

lord2kim 14.12.2012 15:19

ratratrat, по возрастанию
рядом с ником стоит "Карма"

ratratrat 14.12.2012 18:44

lord2kim,

Извини за наглость, не можешь помочь еще с 2 задачами?

1)Написать программу (СКРИПТ .JS, .JSE) вывода в файл списка групп на факультете разбив их на 4 колонки. (Названия групп произвольное)

2)В зависимости от кода ошибки записать в текстовый файл результат проведения операции копирования.

Я Visual Basic .NET программист, не писал ранее скрипты, а вот появилась в них зависимость.

lord2kim 14.12.2012 19:26

ratratrat,
var groups = ["АВУП41", "АСУ31", "АСУ41", "АСУ41", "АСУ51", "АСУ52", "БМС41", "БМС51", "УПТС11", "УПТС12", "УПТС21", "УПТС22", "КИБ21", "КИБ22", "КИБ31", "КИБ32", "КИБ41", "КИБ42", "КИБ51", "КИБ52"];
	var fso = new ActiveXObject("Scripting.FileSystemObject");
	var file = fso.CreateTextFile(fso.GetAbsolutePathName("") + "/1.txt", 1);
	for (i=0; i < groups.length; i+=3) {
		file.WriteLine((groups[i] || "")+"\t\t"+(groups[i+1] || "")+"\t\t"+(groups[i+2] || "")+"\t\t"+(groups[i+3] || ""));
	}
	file.Close();



var fso = new ActiveXObject("Scripting.FileSystemObject"),
		file_err = fso.CreateTextFile(fso.GetAbsolutePathName("") + "/1.txt", 1),
		files = ["1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg", "6.jpg", "7.jpg", "8.jpg", "9.jpg"];
	for (i=0; i < files.length; i++) {
		try {
			fso.MoveFile("C:/"+files[i], fso.GetAbsolutePathName("")+"/");
			file_err.WriteLine("копирование произведено успешно");
		}
		catch(e) {
			file_err.WriteLine(e.number + " -> " + e.message);
		}
	}
	file_err.Close();

ratratrat 14.12.2012 20:18

lord2kim,
Цены нету вам!

ratratrat 15.12.2012 20:38

Прошу еще помочь по возможности с данной задачей:

Написать программу (скрипт .JS, .JSE) преобразования файла группы из одно колоночного в двух колоночный.

После запуска выходит информация в окошечько маленькое, там информация выходит в одну колоночную, надо что бы выходила в двух колоночную.

Помоги пожалуйста !

Задание похоже на:

var groups = ["АВУП41", "АСУ31", "АСУ41", "АСУ41", "АСУ51", "АСУ52", "БМС41", "БМС51", "УПТС11", "УПТС12", "УПТС21", "УПТС22", "КИБ21", "КИБ22", "КИБ31", "КИБ32", "КИБ41", "КИБ42", "КИБ51", "КИБ52"];
	    var fso = new ActiveXObject("Scripting.FileSystemObject");
	    var file = fso.CreateTextFile(fso.GetAbsolutePathName("") + "/1.txt", 1);
	    for (i=0; i < groups.length; i+=3) {
	        file.WriteLine((groups[i] || "")+"\t\t"+(groups[i+1] || "")+"\t\t"+(groups[i+2] || "")+"\t\t"+(groups[i+3] || ""));
	    }
	    file.Close();


Только не запись, а вывод в 2 колонки. То есть что-то типа MSGBOX (MESSAGEBOX) с двумя колонками текста приведенного в var groups.

pashka_k-r 16.12.2012 22:49

lord2kim, и я прошу у тебя помощи!
1. Написать программу (скрипт) вывода имен файлов папки по убыванию размера. (она точно такая же, только по убыванию, как ты видишь)
2. В зависимости от введенной с экрана буквы создать файл отчета по оперативной памяти с именем БУКВА+ДАТА
ПОМОГИТЕ, пожалуйста!

zebra 17.12.2012 00:57

В каком вузе такое задают?

pashka_k-r 17.12.2012 09:31

zebra, в УГГУ!

lord2kim 18.12.2012 16:59

ratratrat, не понятно в чем вопрос конечно...
var groups = ["АВУП41", "АСУ31", "АСУ41", "АСУ41", "АСУ51", "АСУ52", "БМС41", "БМС51", "УПТС11", "УПТС12", "УПТС21", "УПТС22", "КИБ21", "КИБ22", "КИБ31", "КИБ32", "КИБ41", "КИБ42", "КИБ51", "КИБ52"];
	var str = "";
	for (i=0; i < groups.length; i+=2) {
		str += groups[i]+"\t\t"+(groups[i+1] || "")+"\n";
	}
	WScript.Echo(str);


pashka_k-r,
1) замени соответствующую строчку на
ar.sort(function(a,b){return b-a;});

2)
var objItem;
var objWMIService = GetObject("winmgmts:\\\\.\\root\\CIMV2");
var colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PerfFormattedData_PerfOS_Memory", "WQL", 0x10 | 0x20);
var enumItems = new Enumerator(colItems);
for (; !enumItems.atEnd(); enumItems.moveNext()) {
	objItem = enumItems.item();
	
	WScript.Echo("\tAvailableBytes: " + objItem.AvailableBytes + "\n\
	AvailableKBytes: " + objItem.AvailableKBytes + "\n\
	AvailableMBytes: " + objItem.AvailableMBytes + "\n\
	CacheBytes: " + objItem.CacheBytes + "\n\
	CacheBytesPeak: " + objItem.CacheBytesPeak + "\n\
	CacheFaultsPersec: " + objItem.CacheFaultsPersec + "\n\
	Caption: " + objItem.Caption + "\n\
	CommitLimit: " + objItem.CommitLimit + "\n\
	CommittedBytes: " + objItem.CommittedBytes + "\n\
	DemandZeroFaultsPersec: " + objItem.DemandZeroFaultsPersec + "\n\
	Description: " + objItem.Description + "\n\
	FreeSystemPageTableEntries: " + objItem.FreeSystemPageTableEntries + "\n\
	Frequency_Object: " + objItem.Frequency_Object + "\n\
	Frequency_PerfTime: " + objItem.Frequency_PerfTime + "\n\
	Frequency_Sys100NS: " + objItem.Frequency_Sys100NS + "\n\
	Name: " + objItem.Name + "\n\
	PageFaultsPersec: " + objItem.PageFaultsPersec + "\n\
	PageReadsPersec: " + objItem.PageReadsPersec + "\n\
	PagesInputPersec: " + objItem.PagesInputPersec + "\n\
	PagesOutputPersec: " + objItem.PagesOutputPersec + "\n\
	PagesPersec: " + objItem.PagesPersec + "\n\
	PageWritesPersec: " + objItem.PageWritesPersec + "\n\
	PercentCommittedBytesInUse: " + objItem.PercentCommittedBytesInUse + "\n\
	PoolNonpagedAllocs: " + objItem.PoolNonpagedAllocs + "\n\
	PoolNonpagedBytes: " + objItem.PoolNonpagedBytes + "\n\
	PoolPagedAllocs: " + objItem.PoolPagedAllocs + "\n\
	PoolPagedBytes: " + objItem.PoolPagedBytes + "\n\
	PoolPagedResidentBytes: " + objItem.PoolPagedResidentBytes + "\n\
	SystemCacheResidentBytes: " + objItem.SystemCacheResidentBytes + "\n\
	SystemCodeResidentBytes: " + objItem.SystemCodeResidentBytes + "\n\
	SystemCodeTotalBytes: " + objItem.SystemCodeTotalBytes + "\n\
	SystemDriverResidentBytes: " + objItem.SystemDriverResidentBytes + "\n\
	SystemDriverTotalBytes: " + objItem.SystemDriverTotalBytes + "\n\
	Timestamp_Object: " + objItem.Timestamp_Object + "\n\
	Timestamp_PerfTime: " + objItem.Timestamp_PerfTime + "\n\
	Timestamp_Sys100NS: " + objItem.Timestamp_Sys100NS + "\n\
	TransitionFaultsPersec: " + objItem.TransitionFaultsPersec + "\n\
	TransitionPagesRePurposedPersec: " + objItem.TransitionPagesRePurposedPersec + "\n\
	WriteCopiesPersec: " + objItem.WriteCopiesPersec);
}

pashka_k-r 18.12.2012 20:55

lord2kim,
спасибо огромное!


Часовой пояс GMT +3, время: 19:30.