60

Tôi muốn tạo ra một shortcut với Powershell cho thực thi này:Làm thế nào để tạo ra một shortcut sử dụng Powershell

C:\Program Files (x86)\ColorPix\ColorPix.exe 

Làm thế nào điều này có thể được thực hiện?

+1

Bắt đầu PowerShell 5,0 Mục mới, mục xóa và Get-ChildItem đã được nâng cao để hỗ trợ tạo và quản lý các liên kết tượng trưng [xem câu trả lời này] (http://stackoverflow.com/a/29002672/608772) – JPBlanc

+1

Nếu bạn muốn chạy Shortcut với tư cách là Quản trị viên, bạn có thể sử dụng [câu trả lời này] (http://stackoverflow.com/a/29002207/608772). – JPBlanc

Trả lời

86

Tôi không biết bất cứ lệnh có nguồn gốc trong PowerShell nhưng bạn có thể sử dụng đối tượng com thay vì:

$WshShell = New-Object -comObject WScript.Shell 
$Shortcut = $WshShell.CreateShortcut("$Home\Desktop\ColorPix.lnk") 
$Shortcut.TargetPath = "C:\Program Files (x86)\ColorPix\ColorPix.exe" 
$Shortcut.Save() 

bạn có thể tạo ra một kịch bản PowerShell tiết kiệm như set-shortcut.ps1 trong $ pwd bạn

param ([string]$SourceExe, [string]$DestinationPath) 

$WshShell = New-Object -comObject WScript.Shell 
$Shortcut = $WshShell.CreateShortcut($DestinationPath) 
$Shortcut.TargetPath = $SourceExe 
$Shortcut.Save() 

và gọi nó như thế này

Set-ShortCut "C:\Program Files (x86)\ColorPix\ColorPix.exe" "$Home\Desktop\ColorPix.lnk"

Nếu bạn muốn truyền tham số cho exe mục tiêu, nó có thể được thực hiện bằng cách:

'Set the additional parameters for the shortcut 
$Shortcut.Arguments = "/argument=value" 

trước $ Shortcut.Save().

Để thuận tiện, dưới đây là phiên bản được sửa đổi của phím tắt set.ps1. Nó chấp nhận các đối số như tham số thứ hai của nó.

param ([string]$SourceExe, [string]$ArgumentsToSourceExe, [string]$DestinationPath) 
$WshShell = New-Object -comObject WScript.Shell 
$Shortcut = $WshShell.CreateShortcut($DestinationPath) 
$Shortcut.TargetPath = $SourceExe 
$Shortcut.Arguments = $ArgumentsToSourceExe 
$Shortcut.Save() 
+0

Cảm ơn, nó hoạt động :) – cethint

+1

Vui lòng giúp đỡ, chấp nhận điều này như là câu trả lời! Thanks1 –

+1

Rất nhỏ, nhưng chỉ vì mục đích nhất quán, tôi sẽ có cú pháp của lệnh 'Set-ShortCut' giống như' MKLINK', hoặc 'Set-Alias', nơi bí danh hoặc liên kết xuất hiện như đối số đầu tiên và sau đó là Mục tiêu. 'param ([string] $ LinkPath, [string] $ TargetPath)' – orad

19

Bắt đầu PowerShell 5.0 New-Item, Remove-Item, và Get-ChildItem đã được tăng cường để hỗ trợ tạo và quản lý các liên kết tượng trưng. Thông số ItemType cho New-Item chấp nhận một giá trị mới, SymbolicLink. Bây giờ bạn có thể tạo các liên kết tượng trưng trong một dòng đơn bằng cách chạy lệnh ghép ngắn New-Item.

New-Item -ItemType SymbolicLink -Path "C:\temp" -Name "calc.lnk" -Value "c:\windows\system32\calc.exe" 

được carefull một SymbolicLink là khác nhau từ một Shortcut, các phím tắt chỉ là một tập tin. Họ có một kích thước (Một nhỏ, mà chỉ là tài liệu tham khảo nơi họ điểm) và họ yêu cầu một ứng dụng để hỗ trợ các loại tập tin để được sử dụng. Một liên kết tượng trưng là mức hệ thống tập tin, và mọi thứ nhìn thấy nó như là tập tin gốc. Ứng dụng không cần hỗ trợ đặc biệt để sử dụng liên kết tượng trưng.

Dù sao nếu bạn muốn tạo một quản trị Run As phím tắt sử dụng Powershell bạn có thể sử dụng

$file="c:\temp\calc.lnk" 
$bytes = [System.IO.File]::ReadAllBytes($file) 
$bytes[0x15] = $bytes[0x15] -bor 0x20 #set byte 21 (0x15) bit 6 (0x20) ON (Use –bor to set RunAsAdministrator option and –bxor to unset) 
[System.IO.File]::WriteAllBytes($file, $bytes) 

Nếu ai muốn thay đổi một cái gì đó khác trong một tập tin LNK bạn có thể tham khảo official Microsoft documentation.

+3

Có thể đặt biểu tượng cho lối tắt không? – orad

+1

Một liên kết tượng trưng rất khác với lối tắt. Một liên kết được tạo bằng cách sử dụng 'New-Item' trong' "$ {env: AppData} \ Microsoft \ Windows \ SendTo" 'sẽ không hiển thị trong trình đơn Gửi Tới Explorer, vd và không cho phép tùy chỉnh các thuộc tính Shortcut như biểu tượng hoặc thư mục làm việc. – brianary

+0

@brianary hoàn toàn đúng, tôi đã nhầm lẫn ở đây! Tôi chỉnh sửa câu trả lời của tôi để ai cũng có thể downvote. – JPBlanc

Các vấn đề liên quan