【问题标题】:opening a file that's not in the same directory打开不在同一目录中的文件
【发布时间】:2015-05-24 14:23:10
【问题描述】:

我想用 MSG 框运行一个程序(与脚本不在同一目录中),这是代码(它不起作用,因为它需要程序像脚本一样在桌面上)

    puls = MsgBox("Want to open steam?", vbYesNo + vbQuestion)

    if puls = vbYes then
    CreateObject("WScript.Shell").Run "C:\Program Files(x86)\Steam\Steam.exe"
    CreateObject("WScript.Shell").Run "C:\Users\Dario Loi\AppData\Local\TeamSpeak 3 Client\ts3client_win64.exe"
    else
    MsgBox "Okay :(", vbInformation
    end if

现在,如您所见,我想在系统启动时执行此操作以运行我的游戏程序,但我无法将 Steam 放在桌面上,因为它会将其资产转储到那里,而且会一团糟,我也不能将脚本放在steam的目录中,对于TS3也是如此,我试图用它的路径替换文件的名称,但它也不起作用

编辑: 只是为了清楚起见,我的桌面上有一个 VBS 文件,连同它,在桌面上我有 2 个链接(不是原始的 EXE),到 steam 和 TS,(我想运行的程序) ,我想打开这两个程序而不把脚本和程序放在同一个文件夹中,所以

  1. 通过使脚本引用链接和
  2. 通过使脚本引用路径, 如果你有想法,请告诉我

【问题讨论】:

  • @Hackoo 成功回答了 OQ:他的代码 sn-p 有效。请考虑接受他的回答。您的编辑超出了所有限制,极大地扩展了原始问题。所以请再问一个问题...
  • 但实际上我不明白,(这是我的错,不是他的)所以......如果你能给我解释一下
  • .Run strCommand 中的命令行应该与您在命令提示符下键入时完全相同。因此,如果路径包含任何空白字符,则应该用" 双引号括起来(即带有ASCII 代码34 的字符)。再次阅读并彻底检查Chr(34) & Str & Chr(34)...

标签: windows vbscript windows-8 msgbox


【解决方案1】:

如果你这样尝试呢?

puls = MsgBox("Want to open steam?", vbYesNo + vbQuestion)
Set ws = CreateObject("WScript.Shell")
if puls = vbYes then
    ws.Run DblQuote("C:\Program Files(x86)\Steam\Steam.exe")
    ws.Run DblQuote("C:\Users\Dario Loi\AppData\Local\TeamSpeak 3 Client\ts3client_win64.exe")
else
    MsgBox "Okay :(", vbInformation
end if
'*****************************************
Function DblQuote(Str)
    DblQuote = Chr(34) & Str & Chr(34)
End Function
'*****************************************

【讨论】:

  • 复制了所有代码(也带*)并运行它,它问我是否要打开steam,按下是,它无法识别第4行的文件名(甚至可能无法识别5,) 另外,如果我按否,脚本会正常输出“okay :(”
【解决方案2】:

在可执行文件的完整路径中添加 cd(更改目录)行,这会将 cmd 提示符带到该目录,然后执行运行命令。

【讨论】:

  • 所以,我打开了可执行文件的属性,将目标位置从“C:\Program Files (x86)\Steam\Steam.exe”更改为“C:\Program Files (x86)\Steam \Steam.exe" -cd,运行我的VBS,它在第四行给了我一个错误,2个字符,找不到文件,和上一个错误一样,所以你能解释一下吗?请问?
  • 上面是你的完整脚本吗?我只看到 CreateObject("WScript.Shell").Run "Steam.exe",没有引用完整路径或 cd 命令。修改后的脚本可以添加吗?
  • 你的代码对我来说很好用。手动进入文件夹,右键地址栏选择“复制文本”,确保路径完全正确。
  • 我复制了它,但它仍然不起作用,请检查我的编辑以获得澄清
  • 您的脚本适用于我使用其他应用程序,因为我没有 Steam。如果您打开命令提示符并键入:start "C:\Program Files (x86)\Steam\Steam.exe" 会发生什么
猜你喜欢
  • 1970-01-01
  • 2022-01-07
  • 1970-01-01
  • 1970-01-01
  • 2015-08-21
  • 1970-01-01
  • 1970-01-01
  • 2021-05-20
  • 2013-11-17
相关资源
最近更新 更多