小编tha*_*guy的帖子

在powershell中使用参数为快捷方式创建带引号的路径

我有以下 powershell 代码调用 WSHShell,它将在 Win7/8 的开始菜单中创建一个快捷方式,但我无法弄清楚如何让 powershell 在目标行中的参数之前传递 UNC 路径周围所需的引号。

我想要什么: “\\UNCPATH1\Directory\application.exe”argumentA ArgumentB

我得到了什么: \\UNCPATH1\Directory\application.exe argumentA ArgumentB

目前使用的代码:

$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:ProgramData\Microsoft\Windows\Start Menu\Programs\supercoolprogram\mrincredible.lnk")
$Shortcut.TargetPath = "\\UNCPATH1\Directory\application.exe"
$Shortcut.Arguments = "argumentA ArgumentB"
$Shortcut.WorkingDirectory = "\\UNCPATH1\Directory"
$Shortcut.Save()
Run Code Online (Sandbox Code Playgroud)

使用代码示例进行编辑...感谢 TheMadTechnician 和 Speerian,他们都有工作示例。Windows 正在从应用程序 UNC 路径中没有空格的快捷方式中剥离目标字段中的带引号的路径。两个代码示例都适用于带空格的路径。

$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:ProgramData\Microsoft\Windows\Start Menu\Programs\supercoolprogram\mrincredible.lnk")
$Shortcut.TargetPath = "`"\\UNCPATH1\Directory1\application.exe`""
$Shortcut.Arguments = "argumentA ArgumentB"
$Shortcut.WorkingDirectory = '"\\UNCPATH1\Directory1"'
$Shortcut.Save()
Run Code Online (Sandbox Code Playgroud)

或者

$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:ProgramData\Microsoft\Windows\Start Menu\Programs\supercoolprogram\mrincredible.lnk")
$Shortcut.TargetPath = """\\UNCPATH1\Directory 1\application.exe"""
$Shortcut.Arguments …
Run Code Online (Sandbox Code Playgroud)

quotes powershell shortcuts arguments wsh

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

arguments ×1

powershell ×1

quotes ×1

shortcuts ×1

wsh ×1