|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов |
|
Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов
|
Новый участник Сообщения: 23 |
Внимание! В связи с созданием отдельного форума по скриптовым языкам, эта тема переводится в архивное состояние. Если у вас есть вопрос, создайте новую тему или поднимите существующую, если в ней обсуждается аналогичная проблема. Пожалуйста, не создавайте тем с названием "Помогите!" или "Нужна помощь в написании батника". Это и так понятно ![]() |
|
Отправлено: 16:17, 01-11-2005 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата addy2k:
@Echo Off Set iDelMaxSize=50 Set sFile=C:\NOD\111.txt Set sDestPath=C:\Temp For %%I In ("%sFile%") Do If Exist "%%I" If %%~zI LSS %iDelMaxSize% (Del "%%I") Else (Move "%%I" "%sDestPath%") ![]() |
|
------- Отправлено: 23:40, 01-01-2009 | #561 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Creat0R,
Благодарю Вас за помощь !!! Это то , что нужно !!!! Работает отлично !!( причем на основе данного скрипта, я прикрутил еще сверку размеров двух файлов ) Еще раз ---- > Спасибо !!! ![]() |
Отправлено: 22:17, 02-01-2009 | #562 |
![]() Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать Люди добрые помогите написать bat~ник чтоб перезапускал службы: диспечер очереди печати и службу сервер. ОС XP
|
Отправлено: 12:40, 06-01-2009 | #563 |
Сообщения: 53488
|
Профиль | Отправить PM | Цитировать |
Отправлено: 13:33, 06-01-2009 | #564 |
![]() Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать в сети есть ПК с xp используеться как принт сервер (принтер canon 3300) работает печатает бац перестал пока не перезапустишь службы не хочет печать ((( хочу в cron (я просто дебианщик с виндой мало знаком)забить bat`ник пусть службы перезапускает каждые пол часа )))))
|
Отправлено: 15:40, 06-01-2009 | #565 |
![]() Ветеран Сообщения: 2907
|
Профиль | Отправить PM | Цитировать Не знаю, в тему ли пишу, но вот это код функции деинсталляции программы TweakUI, встроенный в ее исполняемый файл. Извлек программой "Ресторатор":
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML RTL=1> <HEAD> <TITLE>Uninstalling Tweak UI</TITLE> <HTA:APPLICATION APPLICATIONNAME="uninstallTweakUI" _BORDER="dialog" CONTEXTMENU="no" INNERBORDER="no" MAXIMIZEBUTTON="no" MINIMIZEBUTTON="no" SCROLL="no" SELECTION="no" SINGLEINSTANCE="yes" /> <STYLE> HTML { background-color: threedface; color: buttontext; font-family: Tahoma; font-size: 10pt; } LI { list-style-type: none } } </STYLE> </HEAD> <SCRIPT LANGUAGE="JScript" DEFER> var FSO; var WshShell; var c_msDelay = 50; // intentionally slow down so people can watch var g_cTasks; var g_iCur; var c_keyPath = "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Tweak UI 2.10\\"; function beginUninstall() { oIntro.style.display = "none"; oProgress.style.display = "block"; FSO = new ActiveXObject("Scripting.FileSystemObject"); WshShell = new ActiveXObject("WScript.Shell"); g_cTasks = document.all.tags("LI"); g_iCur = 0; window.setTimeout(startAction, c_msDelay); } function startAction() { g_cTasks[g_iCur].style.listStyleType = "disc"; window.setTimeout(performAction, c_msDelay); } function performAction() { if (eval(g_cTasks[g_iCur]._action)) { g_iCur++; if (g_iCur < g_cTasks.length) { window.setTimeout(startAction, c_msDelay); } } } function deleteShortcut() { var pathShortcut; try { pathShortcut = WshShell.RegRead(c_keyPath + "ShortcutPath"); } catch (e) { return true; // key doesn't exist - nothing to delete } // Delete shortcut if present - keep going on failure try { FSO.DeleteFile(pathShortcut); } catch (e) { } // Delete folder if empty - keep going on failure var pathFolder = FSO.GetParentFolderName(pathShortcut); if (FSO.GetFolder(pathFolder).Files.Count == 0) { try { FSO.DeleteFolder(pathFolder); } catch (e) { } } return true; } function deleteUninstall() { // Ignore failure try { WshShell.RegDelete(c_keyPath); } catch (e) { } return true; } var g_nTries = 0; function deleteFiles() { var ss = (window.location + "").split("/"); if (ss.length == 4 && ss[0] == "res:") { } else { alert("Unable to location installed copy of Tweak UI."); window.close(); return false; } var pathSelf = ss[2]; try { FSO.DeleteFile(FSO.GetParentFolderName(pathSelf) + "\\PowerToysLicense.rtf"); } catch (e) { } var fSuccess = false; try { FSO.DeleteFile(pathSelf); fSuccess = true; } catch (e) { if (e.number == -2146828218 && ++g_nTries < 5) { window.setTimeout(startAction, 250); return false; // wait and try again } }; if (g_nTries >= 5) { alert("Unable to delete Tweak UI. Make sure no copies of Tweak UI are running."); window.close(); return false; } if (!fSuccess) { alert("Unable to delete Tweak UI. " + e.message); window.close(); return false; } return true; } function reportFinished() { g_cTasks[g_iCur].style.display = "list-item"; oClose.focus(); return true; } </SCRIPT> <BODY onload=oCancel.focus()> <DIV ID=oContent STYLE="position: absolute; height: 11em; width: 20em"></DIV> <SCRIPT LANGUAGE="JScript"> window.resizeTo(oContent.offsetWidth,oContent.offsetHeight); </SCRIPT> <TABLE ID=oIntro> <TR><TD>Click the "Uninstall" button to uninstall Tweak UI.</TD></TR> <TR><TD ALIGN=right><BUTTON onclick=beginUninstall()>Uninstall</BUTTON> <BUTTON ID=oCancel onclick=window.close()>Cancel</BUTTON> </TR></TD> </TABLE> <UL ID=oProgress STYLE="display:none; margin-bottom: 0pt"> <LI _action=deleteShortcut()>Deleting Start menu icon <LI _action=deleteUninstall()>Deleting uninstall information <LI _action=deleteFiles()>Deleting files <LI _action=reportFinished() style="display:none">Done <DIV ALIGN=right><BUTTON ID=oClose onclick=window.close()>Close</BUTTON></DIV> </UL> </BODY> </HTML> |
Отправлено: 16:49, 07-01-2009 | #566 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать Подскажите пожалуйста - есть скрипт:
'========================================================================== 'Печать документа с помощью MS Word 'Параметры: '{Файл} [{Принтер}|"" [{Кодовая страница}|"" [{Количество копий}]]] 'Пример параметров: 'C:\Temp\Test.txt \\Host\HostPrinter 1251 'Для использования значений по умолчанию принтера или кодовой страницы ' можно указать двойные кавычки ("") 'Пример параметров: 'C:\Temp\Text_default.txt 'C:\Temp\Text_dos.txt "" 866 'C:\Temp\Text_3_copies.txt "" "" 3 '========================================================================== Option Explicit '================= Изменяемые параметры =================================== Const TimeLimit = 30 'Время ожидания окончания печати в сек. Const Margin = 1.5 'Поля в см Const Admin = "admin" 'Имя компьютера сис. админ-а Const ShowMess = False 'Показывать ли текст ошибки на текущем компе '========================================================================== Dim objW, Mess, MarginPt, File, Ext, StartTime, CodeStr, Copies 'Дюймы, выраженные в см., для вычисления полей Const Inch = 2.538 'Задаем массив сообщений DefineMess 'Включаем режим ручной обработки ошибок On Error Resume Next 'Создаем объект Word Set objW = WScript.CreateObject("Word.Application") CheckErr(0) 'Первый параметр - открываемый файл File = WScript.Arguments(0) CheckErr(1) 'Открываем файл в кодировке, заданной третим параметром If WScript.Arguments.Count > 2 Then CodeStr = WScript.Arguments(2) If Len(CodeStr) <> 0 Then objW.Documents.Open File,,1,,,,,,,,CodeStr Else objW.Documents.Open File,,1 End If Else objW.Documents.Open File,,1 End If CheckErr(1) 'Вычисляем поля (задаются в пунктах - 1/72 дюйма) MarginPt = Margin/Inch * 72 'Задаем поля для всех файлов, кроме *.doc и *.rtf Ext = LCase(CreateObject("Scripting.FileSystemObject").GetExtensionName(File)) If Not ((Ext = "doc") Or (Ext = "rtf")) Then With objW.ActiveDocument.PageSetup .LeftMargin = MarginPt .RightMargin = MarginPt .TopMargin = MarginPt .BottomMargin = MarginPt End With CheckErr(2) End If 'Если задан второй параметр, то это принтер If WScript.Arguments.Count > 1 Then 'Устанавливаем принтер, если параметр не пустой If Len(WScript.Arguments(1)) > 0 Then 'Устанавливаем текущий принтер - второй параметр objW.ActivePrinter = WScript.Arguments(1) 'Небольшая пауза WScript.Sleep 100 CheckErr(3) End If End If 'Количество копий If WScript.Arguments.Count > 3 Then Copies = WScript.Arguments(3) Else Copies = 1 End If 'Печатаем в фоне objW.PrintOut 1,,,,,,,Copies CheckErr(4) 'Включаем таймер ожидания окончания печати StartTime = Timer 'Ждем, пока закончится печать Do Until objW.BackgroundPrintingStatus = 0 'Если ожидаем уже больше заданного лимита If (Timer - StartTime) > TimeLimit Then 'Генерим ошибку Err.Raise vbObjectError + 1, Mess("Title"), Mess("Err1") CheckErr(5) End If 'Пауза 0.1 сек. WScript.Sleep 100 Loop 'Закрываем Word objW.Quit 0 CheckErr(6) 'Отключаем режим ручной обработки ошибок On Error Goto 0 'Выход Quit 'Процедура задания массива сообщений Sub DefineMess Set Mess = CreateObject("Scripting.Dictionary") With Mess .Add "Title", "Печать документа" .Add "Err1" , "Время ожидания окончания печати превысило заданный лимит. Печать прервана!" .Add 0 , "При создании объекта Word возникла ошибка:" .Add 1 , "Ошибка открытия файла:" .Add 2 , "Ошибка задания полей:" .Add 3 , "При установке активного принтера возникла ошибка:" .Add 4 , "При выполнении печати документа возникла ошибка:" .Add 5 , "Ошибка выполнения печати." .Add 6 , "Ошибка закрытия документа. Закройте документ вручную." End With End Sub 'Процедура проверки ошибок Sub CheckErr(Step) 'Если произошла ошибка If Err.Number <> 0 Then 'Посылаем сообщение на компьютер Admin CreateObject("WScript.Shell").Run "net send " & Admin & " " &_ Mess(Step) & vbNewLine & vbNewLine & Err.Description, 7, False 'Выводим сообщение на текущем компьютере If ShowMess Then MsgBox Mess(Step) & vbNewLine & vbNewLine & Err.Description, _ vbOKOnly + vbCritical, Mess("Title") End If 'Закрываем Word, если открыт If (Step > 0) And IsObject(objW) Then objW.Quit 0 End If Quit End If End Sub Sub Quit Set Mess = Nothing Set objW = Nothing WScript.Quit End Sub Но данный скрипт работает только для конкретной папки с файлами конкретного расширения. А как сделать чтобы печатались файлы со всеми расширениями (файлы с текстовой структурой, но имеют числовое расширение, состоящее из трех цифр:0000,0001,0002 и т.д.). Эти файлы лежат в папке c:\OTDEL\000,001,002 и т.д.\дата (пример 01012009,02012009 и т.д.)\**.000 и т.д. Так надо что бы тотал пускал на печать все файлы находящиеся во всех папках 000,001,002 и т.д. но за определенную дату: например за 04012009-(имя папки с файлами). Вот структура папок /подкаталоги-номер отделения ![]() подкаталоги дата ![]() В папках дата файлы для печати по одному отделению ![]() по другому отделению ![]() и т. д по все отделениям за определенную дату. Помогите пожалуйста, заранее благодарен. |
Отправлено: 18:34, 07-01-2009 | #567 |
Ветеран Сообщения: 894
|
Профиль | Отправить PM | Цитировать Seryoga204,
Пробежаться в батнике по всем дирикториям отделов Echo off dir /A:D /B > dir.txt FOR /F "tokens=1" %%i in (dir.txt) do ( CD %%i call :dodate %%i %1 CD .. ) del dir.txt goto :eof :dodate rem входим в папку cd %2 > SET E1=%errorlevel% if [%E1%]==[0] ( rem если удачно, строим список файлов rem формат вывода подбереь сам dir /B *.%1 > ..\File.txt FOR /F "tokens=1" %%i in (..\File.txt) do ( rem печать call твой_скрипт %%i ) Del ..\File.txt CD .. ) goto :eof где то так, остальное сделаешь сам. |
------- Отправлено: 11:04, 08-01-2009 | #568 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать Подскажите пожалуйсто чем и как можно закодировать (могу ошибаться с термином
![]() |
------- Отправлено: 23:22, 10-01-2009 | #569 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Pozia:
|
|
------- Отправлено: 02:01, 11-01-2009 | #570 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - [решено] VBS/WSH. Сортировка файлов по дате. | rancid | Скриптовые языки администрирования Windows | 3 | 23-07-2009 06:38 | |
[решено] Как с помощью CMD(BAT) запустить запароленный sfx архив! | ofcoss | Автоматическая установка приложений | 7 | 10-07-2009 00:41 | |
CMD/BAT - [решено] Нужна помощь в создании bat-ника для распаковки и переименования файлов/папок | Nun-Nun | Скриптовые языки администрирования Windows | 6 | 14-05-2009 15:45 | |
Нужна снова ваша помощь в написании интересного скрипта | Magnus | Вебмастеру | 2 | 09-06-2005 20:26 | |
Нужна помощь в написании скрипта | Magnus | Вебмастеру | 7 | 06-05-2005 10:53 |
|