Board logo

标题: [问题求助] [已解决]VBS和JS怎样调用指定程序打开文件? [打印本页]

作者: zhanglei1371    时间: 2014-2-22 01:30     标题: [已解决]VBS和JS怎样调用指定程序打开文件?

本帖最后由 zhanglei1371 于 2014-2-22 21:01 编辑

new ActiveXObject("WScript.Shell").Run(“C:\Program Files\Windows NT\Accessories\wordpad.exe C:\aa  123\2.txt")
提示找不到文件。
作者: Batcher    时间: 2014-2-22 09:08

  1. CreateObject("WSCript.Shell").Run """C:\Program Files\Windows NT\Accessories\wordpad.exe""" & """C:\aa  123\2.txt"""
复制代码

作者: zhanglei1371    时间: 2014-2-22 11:37

本帖最后由 zhanglei1371 于 2014-2-22 12:20 编辑

回复 2# Batcher


    其实代码不是vbs,而是js:
如下:
@set @n=1 //&dir /a-d/b *.txt|cscript -nologo -e:jscript "%~0" &pause&exit /b
new ActiveXObject("WScript.Shell").Run(“C:\Program Files\Windows NT\Accessories\wordpad.exe C:\aa  123\2.txt")
new ActiveXObject("WScript.Shell").Run("""C:\Program Files\Windows NT\Accessories\wordpad.exe""" & """C:\aa  123\2.txt""")

提示都是Microsoft JScript 编译错误
第二个问题,在vbs中可用Wscript.quit退出,在js中有没类似的方法,或者类似批处理中pause的方法?
还请进一步指点,谢谢!
作者: apang    时间: 2014-2-22 17:01

本帖最后由 apang 于 2014-2-23 23:49 编辑

这样试试?
  1. @set @n=1 //&dir/a-d/b/s *.txt|cscript -nologo -e:jscript "%~0"&pause&exit/b
  2. ws = new ActiveXObject("WScript.Shell");
  3. i = 0;
  4. while (!WSH.StdIn.AtEndOfStream) {
  5.     f = '"' + WSH.StdIn.ReadLine() + '"';
  6.     //f = WSH.StdIn.ReadLine().replace(/ +/g,'"$&"');
  7.     i += 1;
  8.     if (i > 1) WScript.Quit();
  9.     //if (i > 1) break;
  10.     ws.Run('"C:\\Program Files\\Windows NT\\Accessories\\wordpad.exe" '+f);
  11. }
复制代码

作者: Batcher    时间: 2014-2-23 11:29

回复 3# zhanglei1371


    既然知道是JS代码,下次遇到类似问题请到JS版块发帖。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2