PDA

Показать полную графическую версию : [решено] Запуск 30 скриптов python в консоли через батник


cyberp1983
02-08-2018, 08:15
Такая проблема:
У меня есть порядка 32 скриптов написанных на питоне, мне нужно их все запустить на одном рабочем столе двумя столбцами по 16 для дальнейшего отслеживания их работы.
Как запустить все 32 я вообщем то понял (start /D "G:\Dropbox\sender-text\echo_send_to_new\" python 79031073785.py и т.д.), но мне нужно что бы эти окна замостили весь экран рабочего стола, как прописать координаты каждого окна? или может быть как то можно что бы они автоматически выстроились.

YuS_2
02-08-2018, 10:09
или может быть как то можно что бы они автоматически выстроились. »
cmdow.exe (https://ritchielawrence.github.io/cmdow/)
Управление окнами Windows из консоли (http://old.computerra.ru/gid/rtfm/system/272855/)

Iska
02-08-2018, 12:04
Используйте Wbem, класс Win32_Process и его метод Create, задавая потребные свойства окна создаваемого процесса посредством класса Win32_ProcessStartup.

Как это может выглядеть на WSH:
Option Explicit

Dim objSWbemServicesEx


Set objSWbemServicesEx = WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")

RunProcess "ping.exe -t google.com", "c:\windows\system32", "Обмен пакетами с Google.com", 100, 100, 600, 200, 20, 5
RunProcess "ping.exe -t yandex.ru", "c:\windows\system32", "Обмен пакетами с Yandex.com", 100, 350, 600, 200, 20, 5
RunProcess "ping.exe -t microsoft.com", "c:\windows\system32", "Обмен пакетами с Microsoft.com", 100, 600, 600, 200, 20, 5
RunProcess "ping.exe -t mozilla.com", "c:\windows\system32", "Обмен пакетами с Mozilla.com", 750, 100, 600, 200, 20, 5

Set objSWbemServicesEx = Nothing

WScript.Quit 0

Sub RunProcess(strCommandLine, strWorkingDirectory, strTitle, intX, intY, intXSize, intYSize, intXCountChars, intYCountChars)
Const SW_NORMAL = 1

Dim objSWbemObjectEx
Dim lngProcessID


Set objSWbemObjectEx = objSWbemServicesEx.Get("Win32_ProcessStartup").SpawnInstance_

With objSWbemObjectEx
.Title = strTitle

.X = intX
.Y = intY

.XSize = intXSize
.YSize = intYSize

.XCountChars = intXCountChars
.YCountChars = intXCountChars

.ShowWindow = SW_NORMAL
End With

objSWbemServicesEx.Get("Win32_Process").Create strCommandLine, strWorkingDirectory, objSWbemObjectEx, lngProcessID

Set objSWbemObjectEx = Nothing
End Sub

https://i.imgur.com/4E24MkC.png
Естественно, Вам нет никакой нужды пользовать именно WSH. Используйте код просто как образец для написания аналога на Python'е.

cyberp1983
02-08-2018, 12:42
Спасибо YuS_2

Сделал так:

start /D "G:\new\" python ххххххххх.py
cmdow "C:\Python27\python.exe" /siz 937 71
cmdow "C:\Python27\python.exe" /mov 0 0




© OSzone.net 2001-2012