Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 打开一个';它不在同一个目录中_Windows_Vbscript_Windows 8_Msgbox - Fatal编程技术网

Windows 打开一个';它不在同一个目录中

Windows 打开一个';它不在同一个目录中,windows,vbscript,windows-8,msgbox,Windows,Vbscript,Windows 8,Msgbox,我想用一个消息框运行一个程序(与脚本不在同一目录中),下面是代码(它不工作,因为它需要程序像脚本一样位于桌面上) 现在,正如你所看到的,我想在系统启动时执行这个,让我的游戏程序运行,但我不能把steam放在桌面上,因为它会把它的资产转储到那里,这将是一个混乱,我也不能把脚本放在steam的目录中,TS3也是一样,而且,我试图用它的路径替换文件名,但它也不起作用 编辑: 为了清楚起见,我在桌面上有一个VBS文件,在桌面上我有两个链接(不是原始的EXE),到steam和TS(我想运行的程序),我想打

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

现在,正如你所看到的,我想在系统启动时执行这个,让我的游戏程序运行,但我不能把steam放在桌面上,因为它会把它的资产转储到那里,这将是一个混乱,我也不能把脚本放在steam的目录中,TS3也是一样,而且,我试图用它的路径替换文件名,但它也不起作用

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

  • 通过使脚本引用链接和
  • 通过使脚本引用路径, 如果你有什么想法,请告诉我

  • 在可执行文件的完整路径中添加一个cd(更改目录)行,该行将把cmd提示符带到该目录,并执行run命令。

    如果您这样做

    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
    '*****************************************
    

    因此,我打开了可执行文件的属性,将目标从“C:\Program Files(x86)\Steam\Steam.exe”更改为“C:\Program Files(x86)\Steam\Steam.exe”-cd,运行了我的VBS,它在第四行给了我一个错误,2个字符,找不到文件,与前面的错误相同,所以你能更好地解释一下吗?请问,上面是你的完整剧本吗?我只看到CreateObject(“WScript.Shell”)。运行“Steam.exe”,没有引用完整路径或cd命令。如果你的脚本被修改了,你能添加它吗?你的代码对我来说很好。手动转到文件夹,右键单击地址栏并选择“复制文本”以确保路径完全正确。我复制了它,但它仍然不起作用,请检查我的编辑以获得澄清。由于我没有steam,您的脚本可以使用其他应用程序为我工作。如果打开命令提示符并键入:start“C:\Program Files(x86)\Steam\Steam.exe”复制所有代码(也带有*并运行),它会询问我是否要打开Steam,按“是”,它不识别第4行的文件名(甚至可能不识别第5行),如果按“否”,脚本也会输出“OK:(”作为normal@Hackoo成功地回答了OQ:他的代码片断工作。请考虑接受他的回答。你的编辑扩展了原来的问题,超出了所有的限制。请再问一个问题……但实际上我不理解,(这是我的错,不是他的)。因此…如果您能向我解释一下,
    中的命令行。Run strCommand
    应该与在命令提示下键入的命令行完全相同。因此,如果路径包含任何空格字符,则应该用
    双引号括起来(即带有
    ASCII
    代码34的字符).再次阅读并彻底检查
    Chr(34)&Str&Chr(34)
    。。。
    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
    '*****************************************