日期:2014-05-16  浏览次数:20518 次

关于js中调用bat文件的问题,求指教
我想在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


运行截图如下:
截图一:

截图二:

截图三:

截图四:

最后一张截图:



------解决方案--------------------
你这个清理是需要.ba