Я пытался создать скрипт для себя, который позволил бы мне открывать несколько программ одновременно, но неинвазивным способом. Например, одна программа Steam не всегда должна запускаться при загрузке компьютера, поэтому я хочу написать ее вместе с origin / gtalk / что угодно, что откроет программы, но закроет основные окна определенных программ (steam / origin, я просто использую меню «Пуск» или панель задач для запуска игр).
Теперь, когда я занимаюсь исследованиями, это не кажется слишком сложным.
get-process steam, origin | where {$_.closeMainWindow()}
Я согласен с этим, я могу запустить его несколько раз, но я подумал, что попробую сделать его немного более модным. В Steam и Origin есть несколько окон, которые считаются главными окнами заголовка, которые закрывает команда. Команда, однако, закрывает только по одному за раз, поэтому ее придется запускать несколько раз, чтобы закрыть их. Моя идея - создать функцию с оператором while.
Это не совсем работает, потому что я довольно плохо знаком со всеми концепциями / функциями powershell, поэтому я не совсем знаю, есть ли другой, более простой способ сделать это. Я даже не уверен, что это допустимый цикл while, учитывая, что условие не сравнивается ни с чем, я попытался сделать его -eq $true
вот так while ((get-process steam, origin | where {$_.mainWindowTitle}) -eq $true)
, но получил ошибки.
function test {
while (get-process steam, origin | where {$_.mainWindowTitle}) {
$_.closeMainWindow;
}
}
вывод, передаваемый в третью строку:
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
1161 97 97776 123000 334 3.62 4468 Origin
570 73 175252 58392 484 10.65 1484 Steam
Глупо просить помощи, это не очень ценный сценарий, но я думаю, что это круто: P