.BAT - цикл FOR

Discussion in 'Безопасность и Анонимность' started by Welemir, 12 Aug 2010.

  1. Welemir

    Welemir Elder - Старейшина

    Joined:
    10 Jan 2008
    Messages:
    229
    Likes Received:
    11
    Reputations:
    -4
    Необходима помощь с этим.

    Есть 500 файлов вида MAKED.txtN.txt , где N - номер файла.


    пробую цикл for так:


    PHP:

     
    for %i IN (0,1,746) do start help.exe help.sql help.txtMAKEDN.txt%i.txt  



    В общем,в результате в консоли cmd.exe должна прописаться 500 раз команда start help.exe help.sql help.txtMAKEDN.txt. help.exe - имя программы,которой передаются параметры help.sql и help.txt.MAKEDN.txt. N меняется.Собственно,что не так ? Бат я просто не знаю,а сделать надо срочно.Спасибо.
     
  2. Welemir

    Welemir Elder - Старейшина

    Joined:
    10 Jan 2008
    Messages:
    229
    Likes Received:
    11
    Reputations:
    -4
    Уже решил проблему на рнр,но терь другая проблема - как сделать так,чтобы каждая последующая программа запускалась после того,как завершилась предыдущая ? С помощью АПИ ? Или есть вариант попроще ?
     
  3. Linkus

    Linkus Member

    Joined:
    20 Dec 2008
    Messages:
    168
    Likes Received:
    15
    Reputations:
    -1
    если на бате то start /wait <прога>
     
  4. blinker2009

    blinker2009 Member

    Joined:
    3 Apr 2009
    Messages:
    62
    Likes Received:
    5
    Reputations:
    0
    Нужно прогу накатать, которая определяла дескриптор окна или процесса. Далее результат заносится в массив и проверяется запущен процесс или есть такой дескриптор.
    Code:
    #include <Array.au3>
    global $avArray[10]
    global $j
    ;Создание функции обратного вызова
    $handle = DLLCallbackRegister('_EnumWindowsProc', 'int', 'hwnd;lparam')
    ;Вызвать API для перебора окон
    DllCall('user32.dll', 'int', 'EnumWindows', 'ptr', DllCallbackGetPtr($handle), 'lparam', 10)
    ;Освободить функцию обратного вызова
    DllCallbackFree($handle)
    ;Функция обратного вызова
      $j=0
      Func _EnumWindowsProc($hWnd, $lParam)
      If WinGetTitle($hWnd) = WinGetTitle("[CLASS:tooltips_class32]", "") And BitAnd(WinGetState($hWnd), 2) Then
        $i = ControlGetPos($hWnd, "", "")
     	$avArray[$j]=$hWnd
    	MsgBox(0, WinGetTitle($hWnd), _
    	'$hWnd=' & $hWnd & @CRLF & _
    	'lParam=' & $avArray[2] & @CRLF & _
    	'$hWnd(type)=' & VarGetType($hWnd))
       	;If $res=2 Then Return 0 ;Нажатие кнопки "Отмена" останавливает дальнейший перебор окон
       EndIf
       Return 1 ;Продолжить перебор окон
    EndFunc
    
    hwnd - это дескриптор который нужно найти.
    Данная программа ищет определённый класс. Допустим если написать WinGetTitle("[CLASS:notepad]", "") он будет искать только блокноты. Если нужен дескриптор то делай условии для поиска дескриптора. Если нужен заголовок окна пишем условие для заголовка.If WinGetTitle($hWnd) = WinGetTitle("Безымяный - блокнот").

    Для запуска приложений
    Code:
    Run("C:\Documents and Settings\Admin\Рабочий стол\pop\svchost.exe")
    
    Язык autoIT