You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求可运行指定PowerShell脚本的正确CMD执行命令

解决在CMD中运行PowerShell快捷方式创建脚本的问题

我来帮你搞定这个问题~要在CMD里顺利运行那段创建IE快捷方式的PowerShell脚本,关键得处理好两种命令环境的语法冲突,尤其是引号和命令分隔的问题。

直接可用的CMD命令(简单版)

把PowerShell脚本的多条命令用分号;连接,同时把脚本里的双引号换成单引号(避免和CMD外层的双引号冲突),最终的CMD命令如下:

powershell.exe -Command "$wshshell = New-Object -ComObject WScript.Shell; $lnk = $wshshell.CreateShortcut('C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Internet Explorer.lnk'); $lnk.TargetPath = 'C:\Program Files\Internet Explorer\iexplore.exe'; $lnk.Save()"

为什么之前的尝试不行?

你之前的命令没给PowerShell命令加上完整的引号包裹,而且没有用分号分隔多条PowerShell语句——CMD会把整个内容当成一串参数传给PowerShell,直接导致语法错误。

进阶方案:用Base64编码避免所有冲突(适合复杂脚本)

如果脚本里有更多特殊字符或者引号嵌套,推荐用EncodedCommand参数,先把PowerShell脚本转换成Base64编码:

  1. 先在PowerShell里执行以下命令得到编码:
$script = @"
`$wshshell = New-Object -ComObject WScript.Shell
`$lnk = `$wshshell.CreateShortcut("C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Internet Explorer.lnk")
`$lnk.TargetPath = "C:\Program Files\Internet Explorer\iexplore.exe"
`$lnk.Save()
"@
[Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($script))
  1. 把得到的编码复制到CMD命令里:
powershell.exe -EncodedCommand JAB3AHMAaABzAGgAZQBsAGwAIAA9ACAATgBlAHcALQBPAGIAagBlAGMAdAAgAC0AQwBvAG0ATwBiAGplAGMAdAAgAFcAUwBjAHIAaQBwAHQAUwBoAGUAbABsAA0ACgAkAGwAbgBrACAAPQAgACQAdwBzAGgAcwBoAGUAbABsAC4AQwByAGUAYQB0AGUAcwBoAG8AdABjAHUAdAAoIkM6XFBvcmdyb21hdGVEYXRhXE1pY3Jvc29mdFxXaW5kb3dzXFNhdHQgTWVudVxQcm9ncmFtc1xBY2Nlc3Nvcmllc1xJbnRlcm5ldCBFeHBsb3Jlci5sbmsiKQANAAoAJABsAG5rAC4AVABhAGcAZQBSAGEAdABwACAAPQAgIkM6XFBvcmdzIEZpbGVzXEludGVybmV0IEV4cGxvcmVyXGlleHBsb3JlLmV4ZSIADQAKACQAbABuAGsALgBTAGEAdgBlACgAKQA=

注意事项

因为要修改C:\ProgramData目录下的内容,请确保以管理员身份运行CMD,否则会出现权限不足的报错。

内容的提问来源于stack exchange,提问作者IIIdefconIII

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:50:27