|
изменение скрипта из формы
На 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; как то так. Если это возможно, может подскажите как это сделать? Буду очень благодарен. |
Вы используете оболочку ОС, так что вам мешает получить список файлов каталога из которого и выбирать на запуск нужное?
|
я не знаю как это реализовать. Сколько не пытаюсь представить, ничего не получается. А методом тыка вымотался уже. Я как бы немного в php шарю, сайты несложные делал, программки типа отдела кадров, но опять таки на Mysql. А вот в оболочку ОС месяца нет как залез. Опыта работы с ОС почти вообще нет.
|
С другой стороны, что касается списка файлов, то проблемы действительно нет. Все файлы и пути к ним будут прописаны внутри скрипта.
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 должны выполниться, а не указанные остаться не выполненными. |
Есть папка с файлами, пути к ним получить так:
<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> Если к примеру нужно выбрать файлы для запуска, ну так элементами списка могут быть и флажки, и те файлы что выбранные и будут запущены. Или не это нужно? |
Да у меня конечно есть папка 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 за раз. Я не могу понять как из формы можно внести изменения непосредственно в сам скрипт, чтобы выборка работала? |
Цитата:
Если это не устраивает, значит нужно не "скрипт менять", а приготовить список запускаемых файлов, который читать, выбрать в нем нужные файлы для запуска, которые записывать в .bat, который и запускать. |
может есть иной тип исполнения, но я в js не силен. На php вопросов бы не было. Там элементарно. А здесь я не знаю как поступить. В тем более из вне залезть в скрипт.
|
Цитата:
|
Вот диалог выбора файла
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 и все что угодно из файла. |
Часовой пояс GMT +3, время: 02:41. |
|