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?
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?
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()
Cảm ơn, nó hoạt động :) – cethint
Vui lòng giúp đỡ, chấp nhận điều này như là câu trả lời! Thanks1 –
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
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.
Có thể đặt biểu tượng cho lối tắt không? – orad
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
@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
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
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