我想在js中调用一个bat文件去清理IE的缓存,下边是代码:var wsh = new ActiveXObject("WScript.Shell");
var batName = "清除IE缓存.bat";
//获取当前文件的相对路径
var pathName =window.location.pathname.replace("Test.jsp",""); 
var batPath = pathName+batName;
//执行bat文件
A行  var result = wsh.run(batPath);
B行 //var result = wsh.run("E:/workspace/portal_local/TEST/清除IE缓存.bat");执行A行的时候,用的是相对路径,一直提示系统找不到指定的文件
换成B行,用绝对路径就可以大侠帮忙看看怎么解决啊 是不是run只能接受绝对路径啊,有没有可以用相对路径的方法?
或者是能取到当前项目的绝对路径也可以
谢谢了

解决方案 »

  1.   

    我想应该是你的bat文件没有映射到服务器下面去,才使得你的文件无法找到,而你用B那个的话,它调用的并不是映射在服务器下的bat文件,而是源文件,当然可以找到.
      

  2.   

    再追加一个问题,javascript中用window.showmodaldialog打开的对话框,有个关闭按钮,怎么能不显示这个按钮啊,或者把这个按钮禁用掉,谢谢。
      

  3.   

    额 那种啊我们学校以前都用的客户端啊 WEB要无法关闭是不可能的吧 顶多弹个对话框   
      

  4.   

    用cs做是可以的 但是想用bs实现
    弹框的话 点确定以后页面还是给关了吧 现在想要的效果是 点关闭时给个提示 如果确实是点错了 就不给关了 
    现在的模式是 给了提示后 不管怎么样 都给关了 这样不好
      

  5.   

    我帮你改了一下,可以执行相对路径了。说明如下:我的html和bat文件,都放在c盘根目录,下面文件为1.html,内如如下:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title> New Document </title>
    <meta name="Generator" content="EditPlus">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    <script type="text/javascript">
    <!--
    function run(){
    var wsh = new ActiveXObject("WScript.Shell");
    var batName = "a.bat";
    // 获取当前文件的相对路径
    //var pathName =window.location.pathname.replace("Test.jsp",""); 
    //var batPath = pathName+batName;
    var pathName = window.location;
    alert("当前文件路径:"+pathName);
    var fileName = pathName.toString().split("/")[pathName.toString().split("/").length-1];
    alert("当前文件名:"+fileName);
    var targetFile ="a.bat";
    pathName = pathName.toString().replace(fileName,targetFile);
    alert(pathName);
    // 方式一:相对途径
    var result = wsh.run(pathName);
    // 方式二:绝对途径
    //var result = wsh.run("c:/a.bat");
    }
    //-->
    </script>
    </head>
    <body>
    <input type="button" value="按钮" onclick="run()"/>
    </body>
    </html>
    下面是a.bat的内容:
    mspaint
    运行截图如下:
    截图一:截图二:截图三:截图四:最后一张截图:
      

  6.   

    你这个清理是需要.bat文件的,如果你的客户端没有.bat那不是清理不了呀。
      

  7.   


    我给楼主解释下,流程是这样的,服务器发布的网页,会缓存在客户端电脑上,
    ,而js读取的是html的物理地址,也就是说,他是相对于客户端来说。所有你服务器上发布一个带js的html网页,从
    理论上来说,是可以操作客户端电脑的。
    这也就是,为什么一般的浏览器都会设置js的访问本地的权限。就是为了防止这种潜在威胁情况发生。
      

  8.   


    我想问一下,除了这种js,有没有别的方法可以执行客户端的bat。因为我要设置可信站点,所以上面说的那种方法不能使用。