2015-12-08 1 views
0

Я пытаюсь сделать ярлыки с веб-сайтов. Там нет никаких проблем, и она работает с настоящим Кодексом:Powershell Создать новый ярлык с именем после веб-сайта

$WshShell = New-Object -comObject WScript.Shell 
$Shortcut = $WshShell.CreateShortcut("E:\Powershell\Ziel\TestFile.lnk") 
$Shortcut.TargetPath = "https://www.google.ch/" 
$Shortcut.Save() 

Теперь я хочу, чтобы прочитать URL и создать ярлык с названием «Google» («www.google.ch» также будет в порядке).

Я также пытаюсь прочитать URL-адрес из своего браузера и создать ярлык из этого. Я имею в виду, когда я нахожусь в Google, я хочу запустить скрипт и создать ярлык с именем «Google».

Важная часть - первая часть.

ответ

0

Вы можете использовать регулярное выражение или String.IndexOf() и String.Substring(), чтобы захватить имя хоста из URL-адреса.

Но самый простой (и самый надежный) способ, вероятно, для разбора URL в качестве объекта в [uri] типа, а затем захватить Authority часть:

function New-WebsiteShortcut 
{ 
    param(
     [Parameter(Mandatory)] 
     [uri]$URL, 

     [Parameter()] 
     [ValidateScript({Test-Path $_ -PathType Container})] 
     [string]$Location = (Join-Path $env:USERPROFILE "Desktop") 
    ) 

    # Grab hostname 
    $HostName = $URL.Authority 

    # construct file name and path from hostname 
    $ShortcutName = '{0}.lnk' -f $HostName 
    $ShortcutPath = Join-Path $Location $ShortcutName 

    # create shortcut 
    $WshShell = New-Object -comObject WScript.Shell 
    $Shortcut = $WshShell.CreateShortcut($ShortcutPath) 
    $Shortcut.TargetPath = "$URL" 
    $Shortcut.Save() 
} 

Теперь вы можете поставить только URL (и, возможно, место) для вашего нового командлета:

New-WebsiteShortcut -URL "https://www.google.ch" -Location "E:\PowerShell\Ziel" 

Я оставлю обработку ошибок существующих имен файлов в качестве упражнения для читателя :)

+0

Извините за поздний ответ, был занят л несколько дней. Так что этот скрипт работал для меня отлично, спасибо за это! Но у меня все еще есть проблема, что у меня есть сначала URL. Вы знаете, как я могу прочитать текущий URL, который я просматриваю? Или это возможно? – Tobe

Смежные вопросы