Построение пакетных файлов (*.bat)

strelok

Ословед
Надо написать батник запуска 2х программ последовательно, после запуска окно cmd закрывалось.
Как сделать?:)
 
D

De[M]oN

Надо написать бантик запуска 2х программ последовательно, после запуска окно cmd закрывалось.
Как сделать?:)
Если нужно дождаться выполениня первой перед запуском второй то
Код:
Name1.exe
Name2.exe
exit
А если нужно их запустить одновременно, то нужно сделать на них ссылки (lnk) и тогда будет
Код:
Name1.lnk
Name2.lnk
exit
exit - закроет окно после выполения программ.

P.S. Я не спец в командных файлах, поэтому сказал так, как знал :)
 

strelok

Ословед
start помог, но надо чтоб между запуском был перерыв, например секунды 2, т.е. запускается 1 программа, не закрывая 1ю, запускается вторая. И они висят, после запуска не закрывается окно старта. Как закрыть? И типа wait команда есть? :)
 

Sprut

Ословед
start помог, но надо чтоб между запуском был перерыв, например секунды 2, т.е. запускается 1 программа, не закрывая 1ю, запускается вторая. И они висят, после запуска не закрывается окно старта. Как закрыть? И типа wait команда есть? :)
есть вроде такой параметр ка Sleep (2000), или такой WScript.Sleep или так точно не помню
 

na_PaLm

Ословед
Как по физическому адресу сетевой карты (00-11-d8-f6-f0-b2) найти текущий IP-адрес? и наоборот.
В смысле какие для этого есть комманды?
Заранее спасибо.
 
D

De[M]oN

Как по физическому адресу сетевой карты (00-11-d8-f6-f0-b2) найти текущий IP-адрес? и наоборот.
В смысле какие для этого есть комманды?
Заранее спасибо.
Команда arp, для определения интерфейса по ip адресу "arp -a 192.168.xxx.xxx", но это только в том случае, если компы уже встречались, например между ними прошёл какой то пакет, т.е. достаточно пинга.
для вывода в файл "arp -a > 1.txt"
 
B

Boss Artem

Таксс...Такой вопрос - нужно написать батник, который бы конектился к удаленному хосту по телнету с неким заданным именем пользователя и паролем и выполнял на нем несколько команд (точней 4), или хотя бы одну (другой батник с этими 4 командами). Чтобы все это было автоматом, т.е. юзер запустил этот .bat, и ему дополнительно ничего не надо было бы вводить. Как это можно сделать?
 

sinisha

Ословед
Попробуй это реализовать сначала без батника (например с применением перенаправления ввода аля telnet <input_data_file)
Потом эти команды запишешь в bat файл.
 

na_PaLm

Ословед
TASKKILL

Завершает одно или несколько заданий или процессов. Процессы могут быть уничтожены кодом процесса или именем образа.

Синтаксис

taskkill [/s компьютер] [/u домен\пользователь [/p пароль]]] [/fi имя_фильтра] [/pid код_процесса]|[/im имя_образа] [/f][/t]

Параметры

/s компьютер
Указывает имя или IP-адрес удаленного компьютера (не используйте обратную косую черту). По умолчанию используется локальный компьютер.

/u домен\пользователь
Выполнение команды с разрешениями учетной записи пользователя, который указан как пользователь или домен\пользователь. По умолчанию используются разрешения текущего вошедшего пользователя компьютера, с которого поступила эта команда.

/p пароль
Определяет пароль учетной записи пользователя, заданной параметром /u.

/fi имя_фильтра
Задает типы процессов, которые следует завершить и не следует. Допустимыми именами фильтров, операторами и значениями являются следующие.

Имя || Операторы || Значение
Hostname || eq, ne || Любая допустимая строка
Status || eq, ne || RUNNING|NOT RESPONDING
Imagename || eq, ne || Любая допустимая строка
PID || eg, ne, gt, lt, ge, le || Любой положительное число
Session || eg, ne, gt, lt, ge, le || Любой действительный номер сеанса
CPUTime || eg, ne, gt, lt, ge, le || Допустимое время в формате чч:мм:сс. Компоненты мм и сс должны иметь значения от 0 до 59, а чч может быть любым значением числа без знака
Memusage || eg, ne, gt, lt, ge, le || Любое целое число
Username || eq, ne || Любое действительное имя пользователя ([домен\]пользователь).
Services || eq, ne || Любая допустимая строка
Windowtitle || eq, ne || Любая допустимая строка

/pid код_процесса
Указывает код процесса, который необходимо завершить.

/im имя_образа
Указывает имя образа процесса, который необходимо завершить. Используйте подстановочный знак (*) для указания всех имен образа.

/f
Указывает, что процесс(ы) должен быть принудительно завершен. Этот параметр не действует для удаленных процессов, все удаленные процессы завершаются принудительно.

/t
Задает завершение всех дочерних процессов вместе с родительским, такое действие обычно известно как уничтожение дерева.

/?
Отображает справку в командной строке.

Примечания
  • Подстановочный символ (*) принимается только при указании вместе с фильтрами.
  • Завершение удаленных процессов всегда выполняется принудительно независимо от указания параметра /f.
  • Указание имени компьютера в качестве фильтра HOSTNAME приведет к завершению работы и остановке всех процессов.
  • Используйте команду tasklist для определения кода завершаемого процесса.
  • Команда taskkill является заменой средству Kill.
Примеры

Далее приведены примеры использования команды taskkill:
taskkill /pid 1230 /pid 1241 /pid 1253
taskkill /f /fi "USERNAME eq NT AUTHORITY\SYSTEM" /im notepad.exe
taskkill /s srvmain /f /im notepad.exe
taskkill /s srvmain /u maindom\hiropln /p p@ssW23 /fi "IMAGENAME eq note*" /im *
taskkill /s srvmain /u maindom\hiropln /fi "USERNAME ne NT*" /im *
taskkill /f /fi "PID ge 1000" /im *
 

    Double

    очки: 5
    спасибо

na_PaLm

Ословед
Возможно ли (не запуская окно "командной строки", и не из файла .bat/.cmd) вызывать команды "командной строки" ??
ы
 

salexa

Ословед
Награды
6
na_PALM,
да, возможно:

cmd /c команда (в Win 2k/2k3/XP)
command /c команда (в Win 9x/ME)

Например:
cmd /c del c:\tst.txt


Alexandr172,
не путайте команды (del, copy, md и т.п.) с программами (net, ping, tracert и т.п.). Команды выпоняются командными интерпретаторами (cmd.exe, command.com), выполнить их непосредственно из Start -> Run не получится - ответом будет сообщение "Windows не удалось найти 'del'...".
 

    na_PaLm

    очки: 2
    Нет комментариев

na_PaLm

Ословед
Это конечно хорошо, большое спасибо, но окошко все равно появляется, можно ли как-нибудь сделать, чтоб оно было свернутым ??
те. как свойства ярлыка - свернутое, развернутое, обычное, - но чтобы прописывать в Пуск-Выполнить..., а не создавать ярлык

а еще лучше, чтоб вообще скрытым было, например InnoSetup может запускать файлы/приложения в скрытом окне (только в процессах будет видно), наверняка он это делает с помощью Операционной системы.
Кто-нить знает как это делается ?
 
B

Boss Artem

Это конечно хорошо, большое спасибо, но окошко все равно появляется, можно ли как-нибудь сделать, чтоб оно было свернутым ??
те. как свойства ярлыка - свернутое, развернутое, обычное, - но чтобы прописывать в Пуск-Выполнить..., а не создавать ярлык

а еще лучше, чтоб вообще скрытым было, например InnoSetup может запускать файлы/приложения в скрытом окне (только в процессах будет видно), наверняка он это делает с помощью Операционной системы.
Кто-нить знает как это делается ?
Можешь написать прогу на делфи. Вот заготовка:
Код:
program Myprog;
uses
windows;
begin
winexec('your_command_1',0);
winexec('your_command_2',0);
//и так далее...
end.
Окно вообще будет невидимым.
 

na_PaLm

Ословед
Спасибо, но мне нужно это сделать с помощью ОС, наверняка же невидимость окна, это функция Операционной Системы, только вот как она вызывается ?
 
Спасибо, но мне нужно это сделать с помощью ОС, наверняка же невидимость окна, это функция Операционной Системы, только вот как она вызывается ?
У "Операционной Системы" нет функций, если конечно не подразумеваются API функции которые нельзя вызывать из батников.
Из bat-файлов можно вызывать только команды консольной подсистемы (dir, copy) и программы (ping,ipconfig,telnet)
Скрыть окно можно только если есть команда или программа, которая скрывает окно по его классу/заголовку. Сомневаюсь, что это реализовано, в любом случае в интернете ответ можно найти за 5 сек ... хм, надо бы сходить, за инет заплатить :rolleyes2:
 

    na_PaLm

    очки: 2
    я имел ввиду "функция" а не функция, забыл кавычки поставить, вобщем спс, хотя Вы мне не очень помогли :)

Sprut

Ословед
Спасибо, но мне нужно это сделать с помощью ОС, наверняка же невидимость окна, это функция Операционной Системы, только вот как она вызывается ?
можно зделать если тока использовать еще при этом файлы сценариев винды

Dim Shell

Set Shell = CreateObject("WScript.Shell")

Shell.run "ТВОЙ БАТНИК.bat",0,1

Set Shell= Nothing

Сохранаем под именем run.vbs

выполнить скрыто
 

    na_PaLm

    очки: 2
    спасибо, попробую
Сверху