我想在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只能接受绝对路径啊,有没有可以用相对路径的方法?
或者是能取到当前项目的绝对路径也可以
谢谢了
------解决方案--------------------
我想应该是你的bat文件没有映射到服务器下面去,才使得你的文件无法找到,而你用B那个的话,它调用的并不是映射在服务器下的bat文件,而是源文件,当然可以找到.
------解决方案--------------------
额 那种啊我们学校以前都用的客户端啊 WEB要无法关闭是不可能的吧 顶多弹个对话框
------解决方案--------------------
我帮你改了一下,可以执行相对路径了。
说明如下:
我的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
运行截图如下:
截图一:
截图二:
截图三:
截图四:
最后一张截图:
------解决方案--------------------
你这个清理是需要.bat文件的,如果你的客户端没有.bat那不是清理不了呀。
------解决方案--------------------