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

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

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

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


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

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


Внимание!


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

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





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

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

 

Ветеран


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

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


Цитата Rostlv:
а в самом cmd, если это возможно. »
в начале
if [%RUNNED%]==[1] goto :Eof
set RUNNED=1
..........
код батника
..........
rem в саммом конце основного блока.
set Runned=
goto :eof


RUNNED не должно использоваться в оригинальном cmd. В противном случае изменить на другое имя

-------
Я не развожу политику в подписи
ПТН ПНХ

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

Отправлено: 10:23, 13-11-2008 | #441



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

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


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


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

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


amel27,
Ясн. может пригодится, токо начал читать про WSH интересно )
Сейчас хочу автоматизовать процесс ввода в домен, на микрософте наткнулся на вот этот скриптик:
Код: Выделить весь код
Const JOIN_DOMAIN = 1
Const ACCT_CREATE = 2
Const ACCT_DELETE = 4
Const WIN9X_UPGRADE = 16
Const DOMAIN_JOIN_IF_JOINED = 32
Const JOIN_UNSECURE = 64
Const MACHINE_PASSWORD_PASSED = 128
Const DEFERRED_SPN_SET = 256
Const INSTALL_INVOCATION = 262144
 
strDomain = "domen"
strPassword = "123"	
strUser = "user"
 
Set objNetwork = CreateObject("WScript.Network")
strComputer = objNetwork.ComputerName
 
Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & _
    strComputer & "\root\cimv2:Win32_ComputerSystem.Name='" & _
        strComputer & "'")
 
ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain, _
    strPassword, strDomain & "\" & strUser, NULL, _
        JOIN_DOMAIN + ACCT_CREATE)
Протестил, с задаными параметрами, человек запуская его, может добавить машину в домен, но только если изначально зайдет и введет имя машины ручками, все отлично работает.
Но хотелось бы еще в скриптик добавить обработчик ошибки. Т.е. если скрипт сработал и комп в домен попал, чтобы выскочила надпись, комп успешно добавлен в домен, если же комп не смог войти в домен, то выскочило окно ошибки.

И еще вопрос, возможно ли с помощью WSH заполнять сетевые настройки, а также имя компьютера?
Это чисто скриптовый язык? Т.е. графические элементы у него есть? Например когда нужно ввести имя компьютера, то вписывать его не в тело скрипта, а чтобы выскочила панель, куда ты добавишь имя и нажмешь, ок )

-------
Ночью все кошки серы, ночью все люди безумны


Отправлено: 10:42, 13-11-2008 | #442


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


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

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


А еще такой вопрос, есть ли отладчик приложений для WSH, а то если ошибка в коде есть, он просто мне выбрасывает виндовскую табличку с номером строки, в которой ошибка и все (

-------
Ночью все кошки серы, ночью все люди безумны


Отправлено: 11:11, 13-11-2008 | #443


Googler


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

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


Rostlv
Цитата Rostlv:
Нужна cmd-команда, не позволяющая запустить одновременно 2 и более cmd-файлов, причём её нужно указать не в exe-файле, а в самом cmd »
вариант, предложенный vserd не подойдет - в каждой сессии свои переменные окружения,
вместо SET можно использовать SETX из ресурскита Win2K:
Код: Выделить весь код
IF "%RUNNED%"=="1" EXIT
SETX RUNNED 1
:: ---
PAUSE
:: ---
SETX RUNNED 0
или через реестр - не так красиво, зато штатными средствами:
Код: Выделить весь код
REG QUERY HKCU\Environment /v RUNNED
If "%ERRORLEVEL%"=="0" EXIT
REG ADD HKCU\Environment /v RUNNED /d 1 /f
:: --
PAUSE
:: --
REG DELETE HKCU\Environment /v RUNNED /f
ADD: или через временный файл:
Код: Выделить весь код
IF EXIST "%~dpn0.run" EXIT
@Echo.>"%~dpn0.run"
:: --
PAUSE
:: --
DEL "%~dpn0.run"

Последний раз редактировалось amel27, 13-11-2008 в 12:30.

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

Отправлено: 11:47, 13-11-2008 | #444


Googler


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

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


Liveofan
Цитата Liveofan:
есть ли отладчик приложений для WSH »
Script Debugger for Windows NT 4.0 and Later
официально больше не поддерживается, хотя работает (смотреть внизу "Additional Information")

Цитата Liveofan:
если ошибка в коде есть, он просто мне выбрасывает виндовскую табличку с номером строки, в которой ошибка и все ( »
отлавливать ошибки с помощью объекта "Err", указав "On Error Resume Next", подробно и с примерами:

Doctor Scripto's Script Shop (To Err Is VBScript – Part 1)
Doctor Scripto's Script Shop (To Err Is VBScript – Part 2)

Отправлено: 12:22, 13-11-2008 | #445


Старожил


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

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


И ещё вопрос, как с помощью cmd-файла проверить наличие определённого файла в системе, вернее его версии и при не совпадении версии файла с заданной, запретить выполнение cmd.

Отправлено: 15:35, 13-11-2008 | #446


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


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

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


Всем доброго времени суток.

Прошу помочь с батником.
Подключаюсь к инету таким вот образом :

код



@echo off
rasdial "internet 1" "login" "pass"
if errorlevel 1 goto error
echo.
echo Программа завершила свою работу!
goto end
:error
echo.
echo Произошла ошибка при работе программы
sleep.exe 3
rasdial "internet 2" "login" "pass"
if errorlevel 1 goto error
echo.
echo Программа завершила свою работу!
goto end
:error
echo.
echo Произошла ошибка при работе программы
sleep.exe 3
rasdial "internet 3" "login" "pass"
if errorlevel 1 goto error
echo.
echo Программа завершила свою работу!
goto end
:error
echo.
echo Произошла ошибка при работе программы
:end



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

Отправлено: 15:38, 13-11-2008 | #447



Moderator


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

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


Цитата Rostlv:
как с помощью cmd-файла проверить наличие определённого файла в системе, вернее его версии
[решено] как узнать “версию файла”?

Цитата Rostlv:
и при не совпадении версии файла с заданной, запретить выполнение cmd
Примерно так:
Код: Выделить весь код
@Echo Off
For /F "Tokens=5 Delims= " %%I In ('Filever.exe %windir%\explorer.exe') Do Set V=%%I

Echo %V%
If %V% NEQ 6.0.2900.5512 (
  Echo Версия Explorer.exe не равна 6.0.2900.5512
  Pause
  Exit
)

Последний раз редактировалось Petya V4sechkin, 13-11-2008 в 16:37. Причина: больше/меньше не катит при сравнении строк версий.

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

Отправлено: 15:58, 13-11-2008 | #448


Googler


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

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


Babullika
Цитата:
как реализовать такую схему: если internet 1 выдал ошибку а инет 2 подключился то поменять их местами , а если второй тоже выдал ошибку а третий сработал то третий на место первого , сдвинув первый на место второго а второй на место третьего »
хранить порядок в файле, примерно так:
Код: Выделить весь код
@Echo OFF

Set CONN_LIST=%~dpn0.ini
Set TEMP_LIST=%~dpn0.tmp

If Exist "%TEMP_LIST%" Del /Q "%TEMP_LIST%"
For /F "UseBackQ Delims=" %%i In ("%CONN_LIST%") Do Call :CONNECT %%i

If Defined CONN_PARM (
   Echo %CONN_PARM%>"%CONN_LIST%"
   Type "%TEMP_LIST%">>"%CONN_LIST%"
   Echo.
   Echo Подключение произведено успешно!
) Else (
   Echo.
   Echo Произошла ошибка при работе программы
)
Exit

:CONNECT
If Defined CONN_PARM GOTO :CONNECT_SKIP
>Nul RasDial %*
If NOT ERRORLEVEL 1 Set CONN_PARM=%*
If Defined CONN_PARM GoTo :EOF
:CONNECT_SKIP
Echo %*>>"%TEMP_LIST%"
GoTo :EOF
примерное содержимое файла "Имя батника".INI:
Код: Выделить весь код
"Internet 1" "Login1" "Pass1"
"Internet 2" "Login2" "Pass2"
"Internet 3" "Login3" "Pass3"
"Internet 4" "Login4" "Pass4"
"Internet 5" "Login5" "Pass5"
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:03, 14-11-2008 | #449


Ветеран


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

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


Цитата amel27:
вариант, предложенный vserd не подойдет - в каждой сессии свои переменные окружения, »
Вообще-то да (( я как-то не учел что запуск из под внешнего приложения. Для разных сесий нужно создавать и удалять файл.

-------
Я не развожу политику в подписи
ПТН ПНХ


Отправлено: 11:32, 14-11-2008 | #450



Компьютерный форум 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




 
Переход