【问题标题】:How delete file to shell:startup from vbs?如何将文件删除到 shell:从 vbs 启动?
【发布时间】:2021-07-14 02:37:05
【问题描述】:

我正在尝试从 vbs 中删除一个文件,但我不能,因为这是一个长扩展名,并且必须使用引号:

Set oShell = CreateObject ("Wscript.Shell")
    Dim strArgs6919
    strArgs6919 = "cmd /c del %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\SoftEther VPN Client Manager Startup"
    oShell.Run strArgs6919, 0, false

我可以毫无问题地手动删除它,但我想从 vbs 中删除它,我该如何解决这个问题?非常感谢和问候!

【问题讨论】:

  • 您的代码与您的预期用途相矛盾。如果您想使用 Vbscript 执行此操作,请使用 File System Object 进行删除,而不是调用内置于 CMD.EXEDEL 命令。
  • @Squashman,怎么能这样?
  • 您可能也想阅读这篇文章。 Can I pick up environment variables in vbscript?
  • 我建议您的问题可能比这更简单。根据位置,我的第一个猜测是您应该尝试删除快捷方式,即将SoftEther VPN Client Manager Startup更改为SoftEther VPN Client Manager Startup.lnk当您不让 Windows 隐藏已知文件类型的扩展名时,事情会变得容易得多。显然,如果你这样做,我会确保你也双引号该文件路径,因为它包含空格字符。在这个阶段,我假设你知道如何处理那些嵌套的双引号,如果不知道,请告诉我们

标签: windows batch-file cmd vbscript


【解决方案1】:

这是一个基于您在 cmets 中收到的累积建议的简单示例:

' VB Script Document
Option Explicit
Dim objFSO, objSh, strFile
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objSh = CreateObject("WScript.Shell")
strFile = objSh.SpecialFolders("Startup") & "\SoftEther VPN Client Manager Startup.lnk"
If objFSO.FileExists(strFile) Then objFSO.DeleteFile strFile, True

【讨论】:

  • 我确实试过这个:Set shell = CreateObject("WScript.Shell") Set fso = CreateObject("Scripting.FileSystemObject") startupFolder = shell.SpecialFolders("Startup") & "\" filename = "C:\Users\"& USERNAME &"\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\SoftEther VPN Client Manager Startup.lnk" If fso.FileExists(filename) Then fso.DeleteFile filename, True 但不起作用
  • 我不会用不同的代码帮助你@UlisesAntonioChávez,我上面的回答就是我希望你使用和尝试的全部。如果我自己的代码无法按预期工作,我只会调试我自己的代码,并且您已经宣布它确实如此。我不提供一对一的辅导和支持服务。
  • 好的,但是您的代码可以正常工作,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-08
  • 2012-11-05
  • 1970-01-01
  • 2011-01-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多