尝试在 VBScript 中启动程序
Trying to start a program in VBScript
我以前可以使用以下代码启动这个程序:
dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
strCmd = "cmd.exe /c start /D C:\Jts C:\Windows\system32\javaw.exe -cp jts.jar;total.2012.jar -Dsun.java2d.noddraw=true -Dswing.boldMetal=false -Dsun.locale.formatasdefault=true -Xmx768M -XX:MaxPermSize=128M jclient/LoginFrame C:\Jts"
WshShell.Run(strCmd)
但是,现在,感谢精彩的 java
更新,我的 java.exe
文件位于此处:
C:\Program Files (x86)\Java\jre1.8.0_31\bin\javaw.exe
我在替换上面的 strCmd
变量时遇到问题,这样我的 VBScript
就不会出错。我知道它与 Program Files (x86)
中的间距有关,我已尝试实现此答案:How to use spaces in CMD?
但它似乎不起作用。请帮忙解释一下这些空格的作用。
编辑:
我刚刚弄明白了。天哪,我讨厌空格。显然这行得通,我想知道这是否是最佳解决方案:
strCmd = "cmd.exe /c start /D C:\Jts C:\""Program Files (x86)""\Java\jre1.8.0_31\bin\javaw.exe -cp jts.jar;total.2012.jar -Dsun.java2d.noddraw=true -Dswing.boldMetal=false -Dsun.locale.formatasdefault=true -Xmx768M -XX:MaxPermSize=128M jclient/LoginFrame C:\Jts"
Start 命令引号中的第一组参数假定为 windows 标题。
你的命令不工作,它可能看起来是,但那是因为它错了 Windows 无法说出它有多错并将它视为部分路径..
JavaW 将列在应用程序路径下。您将文件夹指定为 window 标题,将程序名称隔离(但 Windows 知道如何仅通过名称查找 GUI 程序)。
昏暗的 WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd.exe /c start """" /D C:\Jts ""C:\Windows\system32\javaw.exe"" -cp jts.jar;total.2012.jar -Dsun.java2d.noddraw=true -Dswing.boldMetal=false -Dsun.locale.formatasdefault=true -Xmx768M -XX:MaxPermSize=128M jclient/LoginFrame C:\Jts"
修复了不必要的混淆和无意义的变量生成。
从 运行 中删除了括号(您没有测试 return 值)。
为 Windows 标题 ("""") 输入一组空白引号
引用的 JavaW 路径(System32 不需要它)。记住如果引号
用于开始的任何地方第一组必须是 windowtitle.
我以前可以使用以下代码启动这个程序:
dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
strCmd = "cmd.exe /c start /D C:\Jts C:\Windows\system32\javaw.exe -cp jts.jar;total.2012.jar -Dsun.java2d.noddraw=true -Dswing.boldMetal=false -Dsun.locale.formatasdefault=true -Xmx768M -XX:MaxPermSize=128M jclient/LoginFrame C:\Jts"
WshShell.Run(strCmd)
但是,现在,感谢精彩的 java
更新,我的 java.exe
文件位于此处:
C:\Program Files (x86)\Java\jre1.8.0_31\bin\javaw.exe
我在替换上面的 strCmd
变量时遇到问题,这样我的 VBScript
就不会出错。我知道它与 Program Files (x86)
中的间距有关,我已尝试实现此答案:How to use spaces in CMD?
但它似乎不起作用。请帮忙解释一下这些空格的作用。
编辑:
我刚刚弄明白了。天哪,我讨厌空格。显然这行得通,我想知道这是否是最佳解决方案:
strCmd = "cmd.exe /c start /D C:\Jts C:\""Program Files (x86)""\Java\jre1.8.0_31\bin\javaw.exe -cp jts.jar;total.2012.jar -Dsun.java2d.noddraw=true -Dswing.boldMetal=false -Dsun.locale.formatasdefault=true -Xmx768M -XX:MaxPermSize=128M jclient/LoginFrame C:\Jts"
Start 命令引号中的第一组参数假定为 windows 标题。
你的命令不工作,它可能看起来是,但那是因为它错了 Windows 无法说出它有多错并将它视为部分路径..
JavaW 将列在应用程序路径下。您将文件夹指定为 window 标题,将程序名称隔离(但 Windows 知道如何仅通过名称查找 GUI 程序)。
昏暗的 WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd.exe /c start """" /D C:\Jts ""C:\Windows\system32\javaw.exe"" -cp jts.jar;total.2012.jar -Dsun.java2d.noddraw=true -Dswing.boldMetal=false -Dsun.locale.formatasdefault=true -Xmx768M -XX:MaxPermSize=128M jclient/LoginFrame C:\Jts"
修复了不必要的混淆和无意义的变量生成。
从 运行 中删除了括号(您没有测试 return 值)。
为 Windows 标题 ("""") 输入一组空白引号
引用的 JavaW 路径(System32 不需要它)。记住如果引号 用于开始的任何地方第一组必须是 windowtitle.