vbscript-修改快捷方式(如果存在)

vbscript-修改快捷方式(如果存在),vbscript,Vbscript,我试图修改桌面的快捷方式(通过删除旧的和创建新的),脚本首先检查文件是否存在,如果存在,它应该修改它。没有任何运气就试过了。当我删除文件存在检查时,它会工作,因此问题应该在文件存在检查上。这是我的密码: Set wsc = CreateObject("Scripting.FileSystemObject") If (wsc.FileExists(wsc.SpecialFolders("desktop") & "\Google Chrome.LNK")) Then Set fso =

我试图修改桌面的快捷方式(通过删除旧的和创建新的),脚本首先检查文件是否存在,如果存在,它应该修改它。没有任何运气就试过了。当我删除文件存在检查时,它会工作,因此问题应该在文件存在检查上。这是我的密码:

Set wsc = CreateObject("Scripting.FileSystemObject")

If (wsc.FileExists(wsc.SpecialFolders("desktop") & "\Google Chrome.LNK")) Then

Set fso = WScript.CreateObject("WScript.Shell")

Set lnk = fso.CreateShortcut(fso.SpecialFolders("desktop") & "\Google Chrome.LNK")
lnk.targetpath = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
lnk.Arguments = "http://www.google.com"
lnk.save

End If

正确的方法是什么?

您的对象混淆了。您正在调用
FSO
wsc
wscript.shell
FSO
。在创建wscript.shell之前,您正在使用它

Set wsc = CreateObject("WScript.Shell")

If (wsc.FileExists(wsc.SpecialFolders("desktop") & "\Google Chrome.LNK")) Then
  Set fso = WScript.CreateObject("Scripting.FileSystemObject")
我已将对象替换为您想要的对象,而不是您键入的对象

这里修复了所有5个错误,加上一个逻辑错误(仅当快捷方式已存在时才创建):


正如我在回答中所说,您正在将“Scripting.FileSystemObject”分配给WSC。但是WSC被用作wscript.shell对象。反之亦然,将“wscript.shell”分配给FSO并将其用作文件系统对象。查看名称wsc中有一个fso对象,fso中有一个wscript.shell(wsc)对象。您刚刚在两个CreateObject中键入了错误的对象。交换它们。谢谢你的帮助,但仍然不起作用。你试过了吗?
Set wsc = CreateObject("WScript.Shell")
Set fso = WScript.CreateObject("Scripting.FileSystemObject")

If (fso.FileExists(wsc.SpecialFolders("desktop") & "\Google Chrome.LNK")) = false Then

    Set lnk = wsc.CreateShortcut(wsc.SpecialFolders("desktop") & "\Google Chrome.LNK")
    lnk.targetpath = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
    lnk.Arguments = "http://www.google.com"
    lnk.save

End If