• Auto-It! начну издалека. давным-давно мне пришлось столкнуться с проблемой разбиения файлов на куски, равные далеко не в том смысле, который вкладывается в это понятие со времён файл-менеджеров под DOS. например, если нужно скачать файлы через WGET в 40 потоков, а файл-список со ссылками всего один — не будешь же постоянно сидеть и перетаскивать порванные строки между "томами", а мануал по утилите возможностей чтения от строки до строки не показывает. таким образом, сделанный сегодня скриптик полезнее, чем кажется. я не стал заморачиваться с подсчётом пауз между действиями и просто расставил их везде, поэтому возможностей для оптимизации остаётся предостаточно. и на этот раз построчных комментариев не будет. как обычно, для поиска источника требуется Total Commander, а для запуска — Notepad++

    C:\9 row splitter.au3

    Opt("WinTitleMatchMode", 2)
    $all = InputBox("Источник", "Сколько строк в источнике?", "10000")
    $row = InputBox("Строки", "Сколько строк в каждой части?", "250")
    $parts = $all / $row
    $row = $row + 1
    WinActivate("Total Commander")
    Send("{TAB}")
    Send("{ENTER}")
    WinWaitActive("Notepad++")
    Sleep(100)
    $count = 1
    Do
    Send("^{п}")
    Sleep(100)
    Send($row)
    Sleep(100)
    Send("{ENTER}")
    Sleep(100)
    Send("+^{END}")
    Sleep(100)
    Send("+{DEL}")
    Sleep(100)
    Send("{BS}")
    Sleep(100)
    Send("^!{ы}")
    Sleep(300)
    if Send("file" & $count)
    Sleep(100)
    Send("{ENTER}")
    Sleep(100)
    Send("^{ф}")
    Sleep(100)
    Send("+{INS}")
    Sleep(100)
    $count = $count + 1
    Until $count = $parts
    Send("^!{ы}")
    Sleep(300)
    Send("file" & $parts)
    Sleep(100)
    Send("{ENTER}")
    Beep ()

Replies (0)