Tambahkan parameter pada boleh laku daripada pintasan .lnknya dalam Windows

Kemaskini terakhir: 10/10/2025
Pengarang Ishak
  • PowerShell dan WSH membolehkan anda mencipta pintasan .lnk dengan argumen, ikon dan direktori kerja.
  • Kenal pasti parameter pelancar Menu Mula sebelum menggunakan atau membungkus.
  • Dengan MSIX/AppX, gunakan PSF untuk menyuntik argumen dan mengubah hala laluan tanpa menyentuh binari.
  • Jika makro hanya menjalankan .exe, replika Sasaran+Argumen atau gunakan pelancar.

Pintasan Windows dengan parameter

Apabila anda bekerja dengan pintasan masuk Windows, ia bukan semua hanya mengklik dua kali: anda sering memerlukan .lnk untuk melancarkan boleh laku dengan hujah tertentu, seperti notepad.exe file.txt atau suis jenis /EDevIni adalah kunci untuk mengautomasikan, menyahpepijat atau memastikan apl dibuka dengan konteks yang betul.

Selain penciptaan manual melalui antara muka, hari ini terdapat kaedah moden untuk menjana dan mengurus pintasan dengan parameter daripada PowerShell atau dengan enjin Windows COM skrip Hos (WSH). Dan jika anda datang dari persekitaran berpakej (MSIX/AppX) atau anda menemui program yang "hanya bermula dari jalan pintasnya", terdapat teknik untuk Ubah hala hujah, laraskan manifes dan pakej dengan PSF tanpa memecahkan pengalaman.

Apakah yang dimaksudkan untuk menambah parameter kepada boleh laku daripada .lnk?

Pintasan (.lnk) hanyalah fail yang menunjuk ke destinasi (TargetPath) dan, secara pilihan, lampirkan hujah (Argumen), direktori kerja (WorkingDirectory), ikon, pintasan papan kekunci dan metadata lain. Argumen ini adalah apa yang anda lihat apabila, sebagai contoh, anda menjalankan notepad.exe C:\Notes\task.txt atau anda menggunakan pengubah suai seperti / selamat.

Dalam senario perusahaan, banyak apl menu Mula bergantung pada pelancar yang menghantar parameter tertentu kepada boleh laku utama. Jika parameter itu tiada, apl itu boleh ranap atau bermula dengannya tingkah laku yang tidak betul. Itulah sebabnya penting untuk mengenal pasti dengan tepat pintasan yang sedang dijalankan dan dengan hujah apa.

Jika anda perlu mengklonkan pintasan itu atau menggunakannya secara berskala, anda boleh melakukannya dengan skrip yang membina .lnk dengan cepat. Ini mengelakkan pengedaran fail statik seperti Internet Explorer.lnk dan sebaliknya memberi anda fleksibiliti untuk menjana mereka dengan cepat dalam setiap pasukan.

Ia juga perkara biasa untuk menukar pengalaman .lnk kepada sesuatu yang boleh digunakan oleh alatan yang hanya menerima fail .exe. Dalam kes itu, kuncinya adalah untuk menghasilkan semula TargetPath + Arguments + WorkingDirectory daripada pintasan, atau menggunakan "pelancar" yang menjalankan .lnk untuk anda.

Parameter dalam pintasan Windows

Buat pintasan dengan parameter daripada PowerShell (kaedah moden)

PowerShell boleh menggunakan objek COM daripada WScript.Shell untuk membina fail .lnk tanpa bergantung pada fail sedia ada. Ia adalah kaedah moden, sesuai untuk penempatan dan automasi.

Contoh ini mencipta pintasan pada desktop awam yang menjalankan program dengan hujah dan menetapkan ikon, direktori kerja dan gaya tetingkap. Perhatikan bagaimana ini diberikan. TargetPath y Argumen:

$WshShell = New-Object -ComObject WScript.Shell
$Desktop   = [Environment]::GetFolderPath('CommonDesktopDirectory')
$LnkPath   = Join-Path $Desktop 'MiAplicacion.lnk'
$Shortcut  = $WshShell.CreateShortcut($LnkPath)

$Shortcut.TargetPath       = 'C:\\Rutas\\MiApp\\MiApp.exe'
$Shortcut.Arguments        = '/modo=admin /perfil=Default'
$Shortcut.WorkingDirectory = 'C:\\Rutas\\MiApp'
$Shortcut.IconLocation     = 'C:\\Rutas\\MiApp\\MiApp.exe,0'
$Shortcut.WindowStyle      = 1 # 1=Normal, 3=Maximizada, 7=Minimizada
$Shortcut.Hotkey           = 'CTRL+ALT+M'
$Shortcut.Save()

Jika anda ingin meniru tingkah laku pintasan sedia ada (contohnya, itu Internet Explorer.lnk yang anda salin dalam penempatan anda), anda boleh membaca sifatnya dan menjana .lnk lain dengan yang sama takdir dan hujahWalaupun ia tidak begitu diperlukan untuk kebanyakan kes, dengan jelas tentang nilai yang mana salinan pintasan akan mengelakkan kejutan.

Buat pintasan dengan WSH/VBScript (model klasik)

Windows Script Host (WSH) membenarkan anda menjalankan VBScript dan JScript secara asli dan mendedahkan model objek yang anda boleh gunakan buat jalan pintas. Walaupun ia adalah cara "klasik", ia masih berfungsi pada Windows moden kerana WSH disepadukan sejak Windows 98/2000 dan tersedia dalam NT 4.0 melalui Pakej Pilihan.

Logiknya mudah: anda membuat seketika WScript.Shell, arahkan ke folder Desktop dan gunakan Membuat jalan pintas untuk membina .lnk. Dari sana, anda menyesuaikan sifat seperti TargetPath, Arguments, IconLocation, WindowStyle atau Hotkey dan simpan.

  Alih keluar apl prapasang (bloatware) dalam Windows 11: Panduan lengkap

Contoh asas dengan parameter dan pilihan visual Diilhamkan oleh contoh sokongan Microsoft (dinyatakan semula dalam VBScript/WSH):

Set WshShell = CreateObject("WScript.Shell")
Desktop = WshShell.SpecialFolders("Desktop")
Set Lnk = WshShell.CreateShortcut(Desktop & "\\EjemploWSH.lnk")

Lnk.TargetPath = "%windir%\\notepad.exe"
Lnk.Arguments = "C:\\Temp\\demo.txt"
Lnk.WorkingDirectory = "C:\\Temp"
Lnk.IconLocation = "C:\\miicono.ico"
Lnk.WindowStyle = 3 ' 3=Maximizada, 7=Minimizada, 4=Normal
Lnk.Hotkey = "ALT+CTRL+F"
Lnk.Save

WSH juga membolehkan anda membuat pintasan URL. Dalam kes ini, pintasan mempunyai sambungan .URL dan TargetPath menghala ke alamat web:

Set WshShell = CreateObject("WScript.Shell")
Desktop = WshShell.SpecialFolders("Desktop")
Set UrlLink = WshShell.CreateShortcut(Desktop & "\\SitioMicrosoft.URL")
UrlLink.TargetPath = "http://www.microsoft.com"
UrlLink.Save

Jika anda datang dari Visual FoxPro, ideanya adalah sama: Automasi COM WSH mendedahkan kaedah seperti Membuat jalan pintas dan sifat yang setara, supaya anda boleh menterjemah corak ke dalam bahasa pilihan anda dengan mudah.

WSH dan PowerShell untuk pintasan

"Makro saya hanya melancarkan .exe, tetapi apl memerlukan pembukaan daripada .lnknya"

Kes sebenar: beberapa permainan atau alatan "mengesahkan" mereka boot daripada jalan pintas itu sendiri. Jika program makro anda hanya berjalan .exe, tidak .lnk, anda mempunyai beberapa pilihan praktikal.

Pilihan 1: Menghasilkan semula permulaan pintasan. Buka sifat .lnk dan salin betul-betul. Sasaran, Argumen y Folder permulaan. Kemudian, konfigurasikan makro anda untuk memanggil exe itu dengan argumen tersebut, bermula dalam direktori kerja yang sepadan jika boleh. Dalam kebanyakan kes, pengesahan dalaman apl berpuas hati. dengan parameter yang sama.

Pilihan 2: Gunakan a pelancar minimumAnda boleh membuat skrip boleh laku atau skrip kecil yang menggunakan pintasan. Contohnya, menggunakan PowerShell:

Start-Process -FilePath "C:\\Ruta\\a\\MiAcceso.lnk"

Atau dengan perintah MULA sebanyak cmd.exe, yang boleh membuka pintasan jika anda melepasi laluan yang betul dan a tajuk kosong dalam tanda petikan:

cmd.exe /c start "" "C:\\Ruta\\a\\MiAcceso.lnk"

Jika anda benar-benar memerlukan .exe, susun stub (cth., dalam C#) yang sama ada menjalankan .lnk atau memanggil exe dengan argumen yang disimpan dalam pintasan. Taktik ini "mengubah" pintasan menjadi boleh dipanggil. serasi makro tanpa mengubah logik but.

Bagaimana untuk mengenal pasti sama ada pelancar menu Mula memerlukan parameter

Sebelum menyepadukan apl ke dalam penggunaan anda, adalah idea yang baik untuk menyemak sama ada pelancarnya dalam menu Mula bergantung pada hujahKaedah kerja untuk mengesannya adalah seperti berikut:

  1. Pasang aplikasi Windows pada komputer ujian.
  2. Buka Mula Menu dan cari pelancar aplikasi.
  3. Jalankan setiap pelancar yang berkaitan. Jika ia bermula tanpa masalah, ia mungkin tidak memerlukan sebarang parameter khusus.
  4. Nyahpasang aplikasi daripada komputer ujian.
  5. Pasang sekarang menggunakan pemasang Win32 tradisionalnya.
  6. Kembali kepada Mula Menu, cari apl dan klik kanan.
  7. Pilih Lagi > Buka lokasi fail.
  8. Untuk setiap pintasan yang ditemui, buka Properties.
  9. Dalam bidang Sasaran, memeriksa sama ada argumen muncul selepas laluan boleh laku.
  10. Tulis parameter ini untuk digunakan semula dalam penyepaduan atau pembungkusan anda.

Dengan maklumat ini, anda akan dapat meniru corak pelaksanaan dengan tepat (boleh laku + argumen + folder permulaan) apabila mencipta sendiri jalan pintas atau semasa membina skrip permulaan.

Apl Windows (MSIX/AppX): Ubah hala, PSF dan Mengapa Mereka Kadang-kadang "Jangan Mulakan Betul"

yang aplikasi sumber ubah hala yang dibungkus ke C:\\Program Files\\WindowsAppsJika aplikasi cuba menulis di dalam bekas terpencil itu, ia menghadapi ralat kebenaran dan mungkin gagal dalam tugas seperti Simpan tetapan atau cipta fail sementara.

Untuk menangani perkara ini, Rangka Kerja Sokongan Pakej (PSF) membenarkan pengenalan pelancar perantaraan dan peraturan pengalihan yang melaraskan tingkah laku tanpa menyentuh binari asal. Pada peringkat operasi, aliran kerja biasa melalui empat peringkat:

  1. Pementasan apl dalam direktori tempatan.
  2. Buat config.json daripada PSF dan masukkan binari PSF yang berkaitan.
  3. Kemas kini AppxManifest untuk pelancar menjadi PSFLauncher.
  4. Bungkus semula dan tandatangani pakej MSIX.
  Trik Video Amazon Prime dan Ciri Tersembunyi

Pendekatan ini membolehkan anda mengkonfigurasi semula pelancar, menambah hujah melalui PSF, dan mengubah hala laluan kerja, semuanya tanpa mengubah suai boleh laku asal permohonan itu.

Alat yang diperlukan untuk aliran dengan PSF

kepada melaksanakan PSF dan bungkus semula apl yang anda perlukan:

  • Pelanggan dari NuGet (nuget.exe).
  • Rangka Kerja Sokongan Pakej (Microsoft.PackageSupportFramework).
  • Windows 10 SDK (versi terkini) dengan utiliti seperti makeappx y alat isyarat.
  • Monitor Proses Sysinternals (pilihan, sangat berguna untuk mendiagnosis akses fail dan pendaftaran).

Muat turun nuget.exe dan letakkannya, sebagai contoh, dalam C:\\PSF\\nuget. Kemudian, daripada PowerShell dengan keistimewaan yang tinggi, pasang PSF melalui NuGet dalam folder yang berfungsi:

Set-Location "C:\\PSF"
.\nuget\nuget.exe install Microsoft.PackageSupportFramework

Untuk Windows 10 SDK, semasa pemasangan semak sekurang-kurangnya: Signing Tools for Desktop Apps, SDK for C++ UWP Apps dan komponen lokasi daripada SDK. Potongan ini menyediakan segala yang diperlukan untuk pembungkusan dan tandatangan.

Pementasan apl: membongkar MSIX

Pertama tentukan pembolehubah untuk laluan pakej, folder pementasan, seni bina dan versi SDK. Contoh konfigurasi ialah:

$AppPath = "C:\\PSF\\SourceApp\\PSFSampleApp.msix"        # Instalador MSIX
$StagingFolder = "C:\\PSF\\Staging\\PSFSampleApp"         # Carpeta de staging
$OSArchitecture = "x$((gcim Win32_Processor).AddressWidth)"     # x64 o x86
$Win10SDKVersion = "10.0.19041.0"                              # Versión del SDK

Dengan SDK dipasang, gunakan makeappx untuk membongkar MSIX dalam pementasan:

Set-Location "${env:ProgramFiles(x86)}\\Windows Kits\\10\\Bin\\$Win10SDKVersion\\$OSArchitecture"
.\makeappx.exe unpack /p "$AppPath" /d "$StagingFolder"

Selepas langkah ini, kandungan pakej disimpan dalam folder boleh diedit. Ini membolehkan anda menambah PSFLlauncher, masa jalan dan fail konfigurasi JSON dengan argumen yang diperlukan.

Cipta PSF config.json dan masukkan binari

Dalam direktori pementasan, buat fail config.json yang menerangkan setiap aplikasi dalam pakej yang memerlukan pelarasan. Pangkalan minimum termasuk id, boleh dilaksanakan y hujah:

{
  "applications": [
    {
      "id": "",
      "executable": "",
      "arguments": ""
    }
  ]
}

Buka AppxManifest.xml pakej dan cari nod . Mengambil nilai atributnya Boleh dieksekusi dan gunakannya dalam medan boleh laku config.json; juga menyelaraskan id dengan pengecam aplikasi dalam manifes. Jika berkenaan, tambah direktori kerja menunjuk ke folder relatif yang sesuai.

Contoh perwakilan config.json dengan hujah tertentu:

{
  "applications": [
    {
      "id": "PSFSample",
      "executable": "VFS/ProgramFilesX64/PS Sample App/PSFSample.exe",
      "arguments": "/bootfromsettingshortcut"
    }
  ]
}

Daripada pakej PSF yang dimuat turun daripada NuGet, salin binari untuk seni bina anda (x64/x86) ke akar pementasan: PSFLauncher32/64.exe, PSFRuntime32/64.dll y PSFRunDll32/64.exe. Ini melengkapkan pakej dengan pelancar dan masa jalan daripada PSF.

Kemas kini AppxManifest untuk menggunakan PSFLauncher

Edit AppxManifest.xml dan gantikan atribut Boleh Laksana nod untuk menunjuk ke PSFLauncher32.exe o PSFLauncher64.exe, mengikut kesesuaian. EntryPoint biasanya disimpan sebagai Windows.FullTrustApplication:

<Applications>
  <Application Executable="PSFLauncher32.exe" EntryPoint="Windows.FullTrustApplication">
    ...
  </Application>
</Applications>

Dengan ini, permulaan aplikasi sebenar melalui PSFLauncher, yang akan membaca anda config.json, akan menyuntik hujah dan menggunakan ubah hala fail/folder apabila perlu.

Bungkus semula dan tandatangani MSIX yang dikemas kini

Tentukan pembolehubah untuk membungkus dan menandatangani MSIX akhir: laluan keluaran, sijil menandatangani kod dan kata laluan. Pastikan anda mempunyai a sijil yang sah untuk tandatangan.

$AppPath = "C:\\PSF\\SourceApp\\PSFSampleApp_Updated.msix"
$CodeSigningCert = "C:\\PSF\\Cert\\CodeSigningCertificate.pfx"
$CodeSigningPass = "<Password>"
$StagingFolder = "C:\\PSF\\Staging\\PSFSampleApp"
$OSArchitecture = "x$((gcim Win32_Processor).AddressWidth)"
$Win10SDKVersion = "10.0.19041.0"

Pakej daripada pementasan kepada MSIX baharu:

Set-Location "${env:ProgramFiles(x86)}\\Windows Kits\\10\\Bin\\$Win10SDKVersion\\$OSArchitecture"
.\makeappx.exe pack /p "$AppPath" /d "$StagingFolder"

Dan menandatangani pakej menggunakan signtool.exe daripada SDK:

Set-Location "${env:ProgramFiles(x86)}\\Windows Kits\\10\\Bin\\$Win10SDKVersion\\$OSArchitecture"
.\signtool.exe sign /v /fd sha256 /f $CodeSigningCert /p $CodeSigningPass $AppPath

Anda kini mempunyai MSIX berpakej PSF yang menjalankan binari yang betul dengan hujah yang diperlukan, dan dengan ubah hala sekiranya aplikasi memerlukannya.

Kaedah manual: buat pintasan dengan parameter daripada Explorer

Jika anda lebih suka melakukannya dengan tangan, proses grafik adalah mudah: klik kanan pada Desktop > Baru> Jalan pintas dan di lokasi, masukkan boleh laku diikuti oleh parameter, sebagai contoh:

"C:\\Rutas\\MiApp\\MiApp.exe" /EDev

Selepas menamakannya, buka Properties dan laraskan, jika anda perlu, the Folder permulaan, ikon (tab pintasan > Tukar Ikon) dan pintasan papan kekunci. Kaedah ini pantas untuk mengesahkan hujah seperti /EDev tanpa menulis skrip.

  Bagaimana untuk mengkonfigurasi pelayan proksi global dalam Windows 10

Menjana .lnk "dengan cepat" dalam penempatan: daripada menyalin kepada mencipta

Jika pakej anda sebelum ini menyalin "Internet Explorer.lnk" dan anda kini mahu proses itu "tanpa kandungan" (iaitu .lnk tidak wujud dalam pakej dan cipta secara dinamik), PowerShell ialah laluan pilihan dalam persekitaran moden.

Un skrip .ps1 contoh yang boleh anda sepadukan ke dalam alat penyebaran anda:

$Shell = New-Object -ComObject WScript.Shell
$Shortcut = $Shell.CreateShortcut("$env:Public\\Desktop\\IE.lnk")
$Shortcut.TargetPath = "$env:ProgramFiles\\Internet Explorer\\iexplore.exe"
$Shortcut.Arguments = "https://intranet.empresa.local"
$Shortcut.WorkingDirectory = "$env:ProgramFiles\\Internet Explorer"
$Shortcut.IconLocation = "$env:ProgramFiles\\Internet Explorer\\iexplore.exe,0"
$Shortcut.Save()

Pendekatan ini mengelakkan pengedaran fail statik dan membolehkan anda menyesuaikan diri hujah, ikon dan laluan bergantung pada pasukan atau dasar organisasi, semuanya pada masa berjalan.

Amalan yang baik dan petua cepat

  • Sentiasa semak direktori kerja. Banyak apl menganggap laluan relatif, jadi jika anda tidak menetapkan WorkingDirectory kepada boleh laku, anda mungkin mendapat ralat atau tingkah laku yang tidak normal semasa memuatkan fail konfigurasi.
  • Laluan melarikan diri dan hujah dengan ruang menggunakan petikan berganda. Dalam Pintasan, TargetPath biasanya disertakan dalam petikan; hujah juga mungkin memerlukannya jika ia termasuk ruang atau watak istimewa.
  • Jika pintasan menggunakan pembolehubah persekitaran (%windir%, %ProgramFiles%), hormatinya semasa mencipta .lnk. Dengan cara ini, jalan pintas akan kekal sama. mudah alih antara mesin dengan laluan berbeza (cth. x86 vs x64).
  • Untuk diagnostik pada MSIX, bergantung pada Pemantau Proses. Anda akan melihat perkara yang cuba dibuka oleh apl, di mana apl itu gagal kerana kebenaran, dan apa peraturan ubah hala anda perlukan dalam PSF.
  • Versi skrip .ps1 anda dan dokumentasikan hujah. README kecil bersama-sama dengan skrip menjimatkan masa apabila menukar parameter seperti /profil, suis nyahpepijat atau mod but khas.

Contoh WSH yang lebih praktikal (diilhamkan oleh dokumentasi klasik)

Variasi berfokuskan hujah: terbuka Visual FoxPro/Visual Studio dengan fail konfigurasi, menetapkan gaya tetingkap, ikon dan folder permulaan:

Set WshShell = CreateObject("WScript.Shell")
Desktop = WshShell.SpecialFolders("Desktop")
Set S = WshShell.CreateShortcut(Desktop & "\\DevConfig.lnk")
S.WindowStyle = 7 ' Minimizada (0=Maximizada, 4=Normal)
S.IconLocation = "C:\\ruta\\builder.ico"
S.TargetPath = "C:\\Program Files\\Microsoft Visual Studio\\VFP98\\vfp6.exe"
S.Arguments = "-c \"C:\\Rutas\\config.fpw\""
S.WorkingDirectory = "C:\\"
S.Save

Pintasan ke URL korporat dengan sambungan .URL. Berguna untuk mengedarkan akses kepada portal dalaman atau manual:

Set WshShell = CreateObject("WScript.Shell")
Desktop = WshShell.SpecialFolders("Desktop")
Set U = WshShell.CreateShortcut(Desktop & "\\PortalEmpresa.URL")
U.TargetPath = "https://intranet.empresa.local"
U.Save

Bila hendak memilih setiap kaedah

PowerShell: Sesuai untuk penggunaan moden, GPO, Intune, SCCM dan tugasan penggunaan. automasi. Ini ialah kaedah yang disyorkan jika anda tidak mahu mengedarkan fail .lnk yang telah dibuat.

WSH/VBScript: Sempurna apabila anda mewarisi skrip lama atau jika anda perlu mengekalkan keserasian dengannya persekitaran warisan. API COM WScript.Shell adalah stabil dan sangat mudah.

PSF dengan MSIX/AppX: Penting apabila pelancar menu Mula memerlukan parameter atau apabila aplikasi yang dibungkus memerlukan ubah hala untuk berfungsi dengan baik. Membolehkan anda melaraskan tingkah laku tanpa menyentuh binari asal.

Kaedah manual: berguna untuk ujian pantas, buat pintasan ad-hoc dengan parameter (seperti /EDev) atau tunjukkan kebolehlaksanaan sebelum mengautomasikannya dengan skrip.

Sama ada anda ingin menambah parameter kepada boleh laku daripada pintasannya, perlu menjana .lnk "dengan cepat" dengan PowerShell, atau perlu berurusan dengan pakej MSIX yang memerlukan PSF, berikut ialah himpunan lengkapnya: mengenal pasti hujah dalam menu Mula, buat pintasan dengan WSH/PowerShell, atasi pengehadan alatan yang hanya melancarkan fail .exe dan bungkus semula apl dengan PSF supaya semuanya bermula seperti yang pengguna jangkakan.