【问题标题】:Copy a lnk file using VBS使用 VBS 复制 lnk 文件
【发布时间】:2011-08-28 06:29:37
【问题描述】:

这是我的代码

Const ALL_USERS_DESKTOP = &H19&
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(ALL_USERS_DESKTOP)
Set objFolderItem = objFolder.Self
Wscript.Echo objFolderItem.Path
objFSO.CopyFile "\\server\folder\folder\Name of File 8.5.lnk" , objFolderItem.Path , OverwriteExisting

在最后一行给我一个错误。我不确定问题是什么,但我认为它与 lnk 文件有关。如果我放置一个 bat 文件或一个 txt 文件,该文件就会被复制。 lnk 报错。

使用 VBSEdit 作为我的编辑器和 CScript(不是 WScript)

错误信息是 C:\用户\公共\桌面 Microsoft VBScript 运行时错误 (18, 1) : Permission denied

我知道我可以访问服务器和文件夹。我也可以复制所有其他非 lnk 文件

---------- 更新 -----

我用以下代码修改了代码

Const DESKTOP = &H10&
Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.Namespace(DESKTOP)
    Set objFolderItem = objFolder.Self
    Wscript.Echo objFolderItem.Path
    objFSO.CopyFile "\\server\folder\folder\Name of File 8.5.lnk" , objFolderItem.Path , OverwriteExisting

同样的事情。它说权限被拒绝(即使是我自己的桌面)。使用鼠标,我可以在桌面上创建任何我想要的东西,而无需密码或特殊权限。

【问题讨论】:

  • 我使用 VBSEdit,它显示 [C:\Users\Public\Desktop Microsoft VBScript 运行时错误 (18, 1) : Permission denied]
  • 但是为什么这只发生在 .lnk 文件上?您是否尝试过复制 lnk 文件。我想要复制快捷方式(不是原始项目)。

标签: file scripting file-io vbscript windows-scripting


【解决方案1】:

我认为您可能需要在您的目标路径上添加一个斜杠,因为它指的是文件夹:

objFSO.CopyFile "\\server\folder\folder\Name of File 8.5.lnk" , objFolderItem.Path & "\" , True

如果没有斜线,您正在尝试覆盖文件夹,因此权限被拒绝。

【讨论】:

  • 这是一个有趣的想法。我会试一试,但如果我没有添加任何斜线并想复制另一个文件,如“文件名称 8.5.doc”,那么它会毫无问题地复制该文件。所以很奇怪。你试过这个吗?
  • 可能你的环境不一样。我试过一个简化版。使用斜线没关系,没有,它会因为权限被拒绝而失败。设置 objFSO = CreateObject("Scripting.FileSystemObject") objFSO.CopyFile "c:\temp\test.lnk" , "c:\test\", True
【解决方案2】:

我不得不重新创建快捷方式,因为 VBS 不会复制它。

Set Shell = CreateObject("WScript.Shell") 
DesktopPath = Shell.SpecialFolders("Desktop") 
Set link = Shell.CreateShortcut(DesktopPath & "\shortcut.lnk") 
link.TargetPath = "C:\dir\filename.vbs"  ' the location where you store the file on the server 
link.Arguments = ""
link.Description = "Shortcut"
link.HotKey = "CTRL+L"
link.IconLocation = "C:\dir\filename.ico"
link.WindowStyle = 1
link.WorkingDirectory = "C:\dir"
link.Save 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 2016-11-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多