windows - PowerShell无法找到可执行文件的某些动词

标签 windows powershell cmd right-click

我是PowerShell的新手。现在的任务是将某些程序固定到任务栏。这个Tutorial非常好,并且可以在我在Vmware中的Win7 32bit中很好地运行。但是,相同的脚本无法在Vmware的Win10 32bit中运行。因此,我修改了代码,最终发现这是因为找不到某些动词。我的测试代码如下:

CLS
$cmd = 'C:\Windows\System32\cmd.exe'
Test-Path $cmd
$Shell = New-Object -ComObject Shell.Application
$Desktop = $Shell.NameSpace(0X0)
$itemLnk = $Desktop.ParseName($cmd)
$itemVerbs = $itemLnk.Verbs()
Foreach($v in $itemVerbs)
{
    write-host $v.Name
}

ISE以管理员身份运行,结果以及通过手动右键单击cmd.exe所找到的“动词”如下所示:
enter image description here
enter image description here

所以,请告诉我为什么以及如何解决此问题,谢谢!

最佳答案

可能是因为cmd.exe中没有C:\Windows\,请改用此代码:

$cmd = Join-Path $env:SystemRoot 'System32\cmd.exe'

注意:即时通讯使用Join-Path cmdlet组合路径和$env:SystemRoot来检索系统根目录(例如C:\Windows)

关于windows - PowerShell无法找到可执行文件的某些动词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37476927/

相关文章:

batch-file - XCopy 命令在批处理文件中不起作用

java - 更改旋转窗口的底层背景颜色

powershell - Windows 10如何在环境变量中的系统变量中添加多个PATH?

powershell - 在 PowerShell 中使用 Get-EventLog 远程查询多台服务器

batch-file - Bat 文件列表文件名

batch-file - 批处理编程=当我回显时,如何使字符显示缓慢,就像您正在键入它们一样

windows - 为什么在管理员模式下运行时不能使用批处理 XCOPY?

Galileo 上的 C++ REST SDK 示例

windows - 更改 Windows 文件夹中的文件名

powershell - Powershell:多次解析和复制