Как я могу создать скрипт, который будет:

  1. откройте www.google.com или
  2. если www.google.com открыт, откройте www.yahoo.com в новой вкладке [ ref ], или
  3. если день воскресенье, откройте www.bing.com [ ref ],

в каждом случае, используя IE на компьютере с Windows 10, где Edge является браузером по умолчанию?

1 ответ1

0

Ваши требования четко не определены, но насколько я понимаю вашу проблему, я могу дать вам следующее решение: если это не воскресенье, мы ищем все экземпляры IE, если они есть на google.com, если да, то откройте yahoo.com.

Это не идеально, потому что если запустить скрипт снова, вы получите больше вкладок yahoo.com (но этот случай не указан вами), и есть другие вещи, плюс вы должны добавить больше проверок.

Но в любом случае, вот мой подход:

# Set BrowserNavConstants to open URL in new tab    
$navOpenInBackgroundTab = 0x1000; # Full list of BrowserNavConstants: https://msdn.microsoft.com/en-us/library/aa768360.aspx

$ie = $null
if (Get-Process iexplore -ea silentlycontinue | Where-Object {$_.MainWindowTitle -ne ""}) {
    #Write-Output "IE is running"
    $ie = (New-Object -COM "Shell.Application").Windows() | ? { $_.Name -eq "Internet Explorer" }
} else {
    $ie = New-Object -COM "InternetExplorer.Application"
    sleep -milliseconds 50
    $ie.visible=$true
}

$today = (get-date).DayOfWeek
# Depending on the day of the week discovered, assign the right day's array into the sitesToOpen array.
switch ($today) { 
    "Sunday" {
        $ie.navigate("http://bing.com"); break
    }
    default {
        $google = $false
        foreach($tab in $ie) {
            if($tab.LocationURL.Contains("www.google.com"))
            {$google = $true; break}
        }
        if($google) {
            $ie.Navigate2("http://yahoo.com", $navOpenInBackgroundTab);
        } else {
            $ie.navigate("http://google.com")
        }
        break
    }
}
# Cleanup
'ie' | ForEach-Object {Remove-Variable $_ -Force}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .