【发布时间】:2015-10-06 05:41:32
【问题描述】:
我正在编写我的第一个 powershell 脚本,但遇到了一点麻烦。
到目前为止,我的系统创建了一个目录树并用文件填充它。最后一步是在我的桌面上放置一个快捷方式。
我想出了下面的代码:
$ShortcutFile = "$home\Desktop\" + $protocol + ".lnk"
If ( (test-path -path "$ShortcutFile") -ne $true)
{
$WScriptShell = New-Object -ComObject WScript.Shell
$Shortcut = $WScriptShell.CreateShortcut($ShortcutFile)
$Shortcut.TargetPath = $root_path
$Shortcut.Save()
}
我相信任何有经验的 powershell 用户都知道,这不起作用。创建一个文件而不是一个目录。我想解决此问题的正确方法是更改 WScript.Shell 中的对象成员之一,该控件是文件类型。我没有运气找到任何关于如何具体执行此操作的资源,或任何其他方式来执行此操作。我在 MSDN 网站上找到了 API,但那里只列出了几个成员。必须有更多。 实现这一目标的最佳方法是什么?
谢谢
【问题讨论】:
-
创建的是文件而不是目录。 不知道你的意思,快捷方式是一个文件,即使它指向目录。我没有看到您的代码有任何问题。如果我定义
$protocol='SomeName';$root_path='C:\',那么您的代码将毫无问题地工作。 -
没有brianist。那篇文章讨论了创建文件。不是目录。
-
@mreff555 你确定
$root_path指向现有目录吗?顺便说一句,使用@UserName通知用户您的评论。 -
您的代码在 Windows 7/PS 4.0 上对我来说非常好。
$ShortcutFile有什么价值?Test-Path $ShortcutFile -IsValid返回什么?您是否希望快捷方式可以像 NTFS 连接一样从命令行导航?
标签: powershell