Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.08.2016, 08:20
Интересующийся
Отправить личное сообщение для discol Посмотреть профиль Найти все сообщения от discol
 
Регистрация: 18.08.2016
Сообщений: 25

изменение скрипта из формы
На js у меня опыта мало. Даже на толковый диалог не хватит. Но очень хочется осуществить идею.

Вот собственно простенький скрипт.

<script language="JScript">
function run() {
pro1 = "file\\goo1.cmd";
pro2 = "file\\goo2.cmd";
WSH = new ActiveXObject("WScript.Shell");
WSH.run(pro1),1,true;
WSH.run(pro2),1,true;
}
</script>
<input type="button" value="Push" onclick="run()" />


pro1 = "file\\goo1.cmd"; Будет большая база от pro1 до pro101
но мне не надо их все выполнять. Хотелось бы иметь возможность выбирать через форму что запускать. То есть фильтровать через форму
WSH.run(pro1),1,true;
WSH.run(pro7),1,true;
WSH.run(pro9),1,true;
WSH.run(pro25),1,true;
WSH.run(pro33),1,true;
как то так.
Если это возможно, может подскажите как это сделать? Буду очень благодарен.
Ответить с цитированием
  #2 (permalink)  
Старый 18.08.2016, 08:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Вы используете оболочку ОС, так что вам мешает получить список файлов каталога из которого и выбирать на запуск нужное?
Ответить с цитированием
  #3 (permalink)  
Старый 18.08.2016, 09:10
Интересующийся
Отправить личное сообщение для discol Посмотреть профиль Найти все сообщения от discol
 
Регистрация: 18.08.2016
Сообщений: 25

я не знаю как это реализовать. Сколько не пытаюсь представить, ничего не получается. А методом тыка вымотался уже. Я как бы немного в php шарю, сайты несложные делал, программки типа отдела кадров, но опять таки на Mysql. А вот в оболочку ОС месяца нет как залез. Опыта работы с ОС почти вообще нет.
Ответить с цитированием
  #4 (permalink)  
Старый 18.08.2016, 09:27
Интересующийся
Отправить личное сообщение для discol Посмотреть профиль Найти все сообщения от discol
 
Регистрация: 18.08.2016
Сообщений: 25

С другой стороны, что касается списка файлов, то проблемы действительно нет. Все файлы и пути к ним будут прописаны внутри скрипта.
pro1 = "file\\goo1.cmd";
pro2= "file\\goo2.cmd";
и так далее.
А вот
WSH.run(pro1),1,true;
WSH.run(pro2),1,true;
я прописать все не могу. Мне не надо все 101 cmd запускать. Мне надо через форму вносить изменения в скрипт; - Какие cmd запускать а какие нет выбирая через форму. То есть из формы прямо в скрипт добавлять WSH.run(pro1),1,true; WSH.run(pro1),5,true;
WSH.run(pro1),21,true; Когда я нажму button все указанные cmd должны выполниться, а не указанные остаться не выполненными.

Последний раз редактировалось discol, 18.08.2016 в 09:42.
Ответить с цитированием
  #5 (permalink)  
Старый 18.08.2016, 09:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Есть папка с файлами, пути к ним получить так:

<ul id="fl"></ul>
<script>
var fso = new ActiveXObject("Scripting.FileSystemObject"),
    folder = fso.GetFolder("ИМЯ ДИСКА:\\ПАПКА"),
    files = new Enumerator(folder.Files), 
    f = '';

    for(; !files.atEnd(); files.moveNext()) f += '<li>' + files.item().Path + '</li>';
    
    document.getElementById('fl').innerHTML = f; 
</script>


Если к примеру нужно выбрать файлы для запуска, ну так элементами списка могут быть и флажки, и те файлы что выбранные и будут запущены. Или не это нужно?
Ответить с цитированием
  #6 (permalink)  
Старый 18.08.2016, 10:04
Интересующийся
Отправить личное сообщение для discol Посмотреть профиль Найти все сообщения от discol
 
Регистрация: 18.08.2016
Сообщений: 25

Да у меня конечно есть папка file\\ но в ней есть и папки под папки и в некоторых случаях есть еще под папки. И где-то снаружи или глубоко лежат cmd.
Все пути к ним прописываются в начале функции
pro1 = "file\\folder\\goo1.cmd";
pro1 = "file\\goo1.cmd";
pro1 = "file\\folder45\\goo45.cmd";
pro1 = "file\\goo16.cmd";
pro1 = "file\\goo18.cmd";
и так прописаны все пути в начале скрипта.
А в нижней части скрипта
будут добавляться только те cmd, которые выбраны формой.
WSH.run(pro1),1,true; запустит на исполнение pro1 = "file\\goo1.cmd";
WSH.run(pro2),1,true; запустит на исполнение pro2 = "file\\goo2.cmd";
а WSH.run(pro3),1,true; не запустится потому что не выбран формой и не будет потому добавлен в скрипт.
Потом нажимаем buttom onclick="run() и выполняем все указанные cmd за раз. Я не могу понять как из формы можно внести изменения непосредственно в сам скрипт, чтобы выборка работала?
Ответить с цитированием
  #7 (permalink)  
Старый 18.08.2016, 10:08
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от discol
Да у меня конечно есть папка file\\ но в ней есть и папки под папки и в некоторых случаях есть еще под папки. И где-то снаружи или глубоко лежат cmd.
Вы же не веб страницу используете, а либо VBS или HTA-приложение. В его рамках можно что угодно делать, в том числе рекурсивно обойти каталог и получить файлы по маске.

Если это не устраивает, значит нужно не "скрипт менять", а приготовить список запускаемых файлов, который читать, выбрать в нем нужные файлы для запуска, которые записывать в .bat, который и запускать.
Ответить с цитированием
  #8 (permalink)  
Старый 18.08.2016, 10:10
Интересующийся
Отправить личное сообщение для discol Посмотреть профиль Найти все сообщения от discol
 
Регистрация: 18.08.2016
Сообщений: 25

может есть иной тип исполнения, но я в js не силен. На php вопросов бы не было. Там элементарно. А здесь я не знаю как поступить. В тем более из вне залезть в скрипт.
Ответить с цитированием
  #9 (permalink)  
Старый 18.08.2016, 10:11
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от discol
выбирать через форму что запускать.
Забудь про интерфейсы в скриптах винды, их по-видимому никогда не будет. Все что ты можешь - вызывать диалоги. Например выбора папки или файла.
Ответить с цитированием
  #10 (permalink)  
Старый 18.08.2016, 10:13
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Вот диалог выбора файла

var GetFileName =function( myDir, myFilter ) {

  var objDialog=WScript.CreateObject( "UserAccounts.CommonDialog" );
  
  objDialog.InitialDir = myDir || WScript.CreateObject( "WScript.Shell" ).SpecialFolders( "MyDocuments" );

  objDialog.Filter = myFilter || "All files|*.*";

  if(objDialog.ShowOpen())  return objDialog.FileName;

};

var f=GetFileName();

WScript.Echo('file: '+f); /* это замени на полезный код */


Чтобы начинать с последнего myDir, надо сохранить последний myDir в файле .ini или вроде того, и затем читать этот файл и получать последний myDir и все что угодно из файла.

Последний раз редактировалось warren buffet, 18.08.2016 в 10:18.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переопределить стили формы из внешнего скрипта... Round (X)HTML/CSS 8 02.10.2013 20:40
Изменение скрипта HepoH Javascript под браузер 3 30.03.2012 19:10
Как сделать реакцию на изменение любого элемента формы. Mik Events/DOM/Window 3 28.07.2011 08:52
проверка формы на изменение полей, кроме одного! cmygeHm ExtJS 14 13.04.2011 18:27
Оцените реализацию скрипта валидации данных формы pandasensey Ваши сайты и скрипты 0 05.07.2010 18:11