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

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

Ответить
Настройки темы
VBS/WSH/JS - Вывод в CMD процесса работы JS

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


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

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


Изменения
Автор: kosmonavtom
Дата: 09-03-2013
Описание: не дописал
Есть JS скрипт с рекурсивным обходом папок, который как Вы понимаете, может работать достаточно продолжительное время:


Код: Выделить весь код
// 1 Взято со страницы и изменено: http://forum.oszone.net/nextnewesttothread-199998.html
// 2объект файловой системы
var fso = new ActiveXObject("Scripting.FileSystemObject"); 
// 4 путь к каталогу, откуда запускается скрипт
var path = WScript.ScriptFullName.substr(0, (WScript.ScriptFullName.length - WScript.ScriptName.length)),  
	p = fso.GetFolder(path);

var vsePapki = [];  //Массив записей путей ко всем подпапкам.
var nomerProverki=0; //Количество провереных и обработанных папок.
var nomerZapisi=1;  // Количество записанных папок в массив.

//12 Вызываем рекурсивную функцию
sFolders(path);
//14 Рекурсивная функция перебора всех папок и подпапок
function sFolders(folder)//полный путь
{	
	// 17 доступ к объекту-папке
	var root = fso.GetFolder(folder);
	// 19 Коллекция подпапок
	var sfCount = root.SubFolders.Count;
	// 21 последовательность подпапок
	var seq = new Enumerator(root.SubFolders);
	// WScript.Echo("\nКоличество подпапок в корневой папке (" + root + ") = " + sfCount);
        // 24 если в текущей папке есть подпапки, то вызываем функцию для каждой подпапки рекурсивно.
	while (sfCount>0)
	{
		for(; !seq.atEnd(); seq.moveNext())
		{
			// WScript.Echo("Путь к подпапке = " + seq.item().path);
			vsePapki[nomerZapisi] = seq.item().path;
			nomerZapisi=nomerZapisi+1; // Количество записей в массиве адресов
		}
		nomerProverki=nomerProverki+1;
		
		WScript.Echo("Номер проверки = " + nomerProverki +  "          Номер записи = " + [nomerZapisi-1]);
		
		if (nomerProverki>=nomerZapisi)
		{
			sfCount = 0;
		}
		else
		{
			WScript.Echo("ПАПКА НА ПРОВЕРКУ = " + vsePapki[nomerProverki]);
			sfCount = sfCount - 1;
			sFolders(vsePapki[nomerProverki]);
		
		}
	
	}
 
}

нужно, чтобы во время своей работы он мог вывести сообщения о своей работе не при помощи команд Echo с мучительным количество щелчков и подтверждений а через cmd. Поэтому я нашел еще обратный JS скрипт, который вводит в cmd команду, а потом забирает от туда данные, так вот нужно чтобы было наоборот.

Код: Выделить весь код
var wsh = new ActiveXObject("WScript.Shell");
var cmd = wsh.Exec("cmd /c dir C:\ /on");

while (cmd.Status === 0) {
    WScript.Sleep(100);
}

var output = cmd.StdOut.ReadAll();
WScript.Echo(output);
ВНИМАНИЕ для чайников! Оба скрипта можно проверить на Windows XP/7 (остальные не пробовал) записав их в файл вида *.js и запустив его.

Идея у меня была такая:
1) Во время работы скрипта открывается окно cmd
2) В открытое окно cmd от скрипта поочередно выводятся адреса тех папок которые обрабатываются в данный момент. (или другая информация о ходе работы)
3) После завершения может появляться сообщение о завершении скрипта.

Перерыл не один форум, ничего не нашел. В связи с чем подскажите пожалуйста ответы на вопросы:
а) Возможно ли выполнение моей идеи?
б) Возможно ли вывести процесс работы такого скрипта другим способом?

Отправлено: 10:52, 09-03-2013

 

Ветеран


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

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


Цитата kosmonavtom:
чтобы во время своей работы он мог вывести сообщения о своей работе не при помощи команд Echo с мучительным количество щелчков и подтверждений »
kosmonavtom, запускайте скрипт на исполнение при помощи хоста cscript.exe, а не wscript.exe: Running Scripts from the Command Line.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:01, 09-03-2013 | #2



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

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


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


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

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


Спасибо за совет, но в cmd появляется сообщение о том, что "script" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.

Отправлено: 10:28, 10-03-2013 | #3


Ветеран


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

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


Цитата kosmonavtom:
"script" не является внутренней или внешней командой »
cscript

Отправлено: 10:32, 10-03-2013 | #4


Ветеран


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

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


Цитата kosmonavtom:
но в cmd появляется сообщение о том, что "script" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. »
Цитата Iska:
запускайте скрипт на исполнение при помощи хоста cscript.exe »
Например, так:
Код: Выделить весь код
cscript.exe //nologo "Путь\скрипт.js"
При нужде можно вовсе сменить используемый по умолчанию хост для обработки сценариев на потребный: Setting the Default Scripting Engine.

Отправлено: 10:42, 10-03-2013 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] как прописать в vbs/cmd/wsh/js удаление сетевого подключения автоматом? russor Скриптовые языки администрирования Windows 2 02-04-2011 03:11
Доступ - [решено] Прекращение работы хост процесса (Прекращение работы хост процесса (Rundll32)) decoy! Microsoft Windows Vista 2 24-04-2010 19:51
CMD/BAT - [решено] вывод текстового файла на экран cmd idsp Скриптовые языки администрирования Windows 6 06-04-2009 07:18
Разное - Прекращение работы процесса chudishe Microsoft Windows 2000/XP 0 03-01-2009 03:34
JS: Вывод сообщения при уходе со страницы Vyacheslav Вебмастеру 9 10-05-2007 00:50




 
Переход