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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов

Закрытая тема
Настройки темы
Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов

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


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

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


Внимание!


В связи с созданием отдельного форума по скриптовым языкам, эта тема переводится в архивное состояние. Если у вас есть вопрос, создайте новую тему или поднимите существующую, если в ней обсуждается аналогичная проблема.

Пожалуйста, не создавайте тем с названием "Помогите!" или "Нужна помощь в написании батника". Это и так понятно Заголовок темы должен быть осмысленным.





Исходный вопрос участника
Всех приветствую.
Задача следующая: смотрим в в каталог (например d:\dir\*.*) и если в нем сущетвуют файлы возраст которых более 40 дней, то отправляем email на указанный адрес.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:17, 01-11-2005

 

Аватара для Creat0R

Must AutoIt


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

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


Цитата addy2k:
Как осуществить проверку --- > если файл меньше 50 кб - удалить его !!! »
Так:

Код: Выделить весь код
@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%")
?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:40, 01-01-2009 | #561



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

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


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


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

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


Creat0R,
Благодарю Вас за помощь !!!

Это то , что нужно !!!!
Работает отлично !!( причем на основе данного скрипта, я прикрутил еще сверку размеров двух файлов )

Еще раз ---- > Спасибо !!!

Отправлено: 22:17, 02-01-2009 | #562


Аватара для apostol goroda grexa

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


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

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


Люди добрые помогите написать bat~ник чтоб перезапускал службы: диспечер очереди печати и службу сервер. ОС XP

Отправлено: 12:40, 06-01-2009 | #563



Moderator


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

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


apostol goroda grexa, перезапуск диспетчера очереди печати:
Код: Выделить весь код
net stop spooler
net start spooler
сервер:
Код: Выделить весь код
net stop lanmanserver
net start lanmanserver
А зачем, можно узнать?
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:33, 06-01-2009 | #564


Аватара для apostol goroda grexa

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


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

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


в сети есть ПК с xp используеться как принт сервер (принтер canon 3300) работает печатает бац перестал пока не перезапустишь службы не хочет печать ((( хочу в cron (я просто дебианщик с виндой мало знаком)забить bat`ник пусть службы перезапускает каждые пол часа )))))

Отправлено: 15:40, 06-01-2009 | #565


Аватара для Котяра

Ветеран


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

Профиль | Отправить 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>
Если кому нужно - изучайте. Это *.hta

Отправлено: 16:49, 07-01-2009 | #566


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


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

Профиль | Отправить 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
Благодарности: 137

Профиль | Отправить 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


Аватара для Pozia

Ветеран


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

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


Подскажите пожалуйсто чем и как можно закодировать (могу ошибаться с термином ) VBS скрипт. Я в них ниче не понимаю но нужно сделать из *.vbs *.vbe. Спасибо

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 23:22, 10-01-2009 | #569


Аватара для Creat0R

Must AutoIt


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

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


Цитата Pozia:
чем и как можно закодировать (могу ошибаться с термином ) VBS скрипт »
Script Encoder?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:01, 11-01-2009 | #570



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход