上运行HTML
我需要运行一个.bat文件与JavaScript .bat文件,当用户点击网页上的链接。 .bat文件基本上运行另一个可执行文件并将其输出保存在文本文件中。所以我想要的是一旦用户点击链接到网页上的.bat文件,创建该文本文件。现在,当我单独执行它会创建一个与内容的文本文件,但不知何故,当我点击链接它会创建一个空的文本文件,我的.bat文件是可以正常使用。我看了所有的路,他们都很好; 我使用 批处理文件, 我还试图 功能runApp(其) {的WshShell =新的ActiveXObject( “WScript.Shell”); WshShell.Run(which,1,true); } 但他们两人刚刚创建的文本文件,而不是把内容上运行HTML
没有任何一个有对此问题的任何想法,也没有任何其他办法做到这一点,就像运行原始.bat文件和然后直接使用html/javascript获取文本文件的输出结果?
任何并欣赏帮助 感谢
你不说什么环境中,您与工作,我猜你没有与服务器端环境中工作的任何东西。 JavaScript通常在浏览器中工作,以响应用户的点击和鼠标移动等,但严格限制在浏览器范围内。你所要做的是执行的I /浏览器正在运行(如果你是在本地运行)的底层操作系统或在正常的网页环境中的服务器端操作系统O操作。这不仅仅是一个安全问题 - 对于这个问题,JavaScript并不直接连接到客户端的操作系统或服务器端操作系统。
你需要的是像Apache或IIS等网络服务器环境,可能运行的环境如ASP.NET,JSP,PHP(带有像CodeIgniter这样的好框架),或者,而不是我,CGI。
用户点击一个链接或提交按钮,并且向服务器发送请求。相关的服务器端程序处理请求,运行您所说的I/O操作并用文本进行响应。 JavaScript在大多数流程中并不重要。当你试图找出如何以某种奇特的动态方式显示响应时,它只会再次出现。
有成千上万的教程在那里:
- Tomcat的(Java)的http://wiki.apache.org/tomcat/GettingStarted
- .NET(C#或VB)http://www.asp.net/get-started
- 笨(PHP)http://codeigniter.com/
- CGI(不适用于暗淡)http://www.cgi101.com/book/ch1/text.html
说了这么多,在那里我SA服务器端JavaScript环境(http://nodejs.org/),但问题是你永远的HTTP协议,这意味着你发送一个请求到服务器的局限性限制,服务器根据您的要求进行处理您作为客户端的权限,在适当的情况下执行I/O操作,并用HTML流进行响应。它不允许在服务器上直接操作。
没有什么是容易的。期待陡峭的学习曲线。
显示文本文件的内容
下面是一个样本JSP页面将读取文本文件的内容,然后在网页上显示。我还没有添加任何按钮或任何东西 - 它只是演示了如何在服务器上读取一个文件:
<%@page contentType="text/html" pageEncoding="UTF-8" import="java.io.*"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>BufferedReader</title>
</head>
<body>
<%
String path = this.getServletContext().getRealPath("/target/message.txt");
File file = new File(path);
FileReader reader = new FileReader(file);
BufferedReader br = new BufferedReader(reader);
while(br.ready()){
out.print(br.readLine() + "<BR>");
}
reader.close();
%>
</body>
</html>
/target/message.txt
是虚拟绝对路径(从Web应用程序的根目录)。对getRealPath
的调用是您获得真实物理路径的方式,允许您创建File对象。
我稍后会看看使用exec
来运行批处理文件,但现在您正在考虑像Java这样的强大语言/库为什么要运行批处理文件?用Java编写程序不是有意义的吗? node.js中的
谢谢我会试试:) – user1285
所以我试图在JAVA中,我这样做:Runtime.getRuntime()。exec(“cmd/c start test.bat”);但它仍然没有创建内容的文本文件,只是一个空的文本文件:( – user1285
Shaleen,我仍然试图猜测你在什么环境。你想从命令行或什么?如果你想通过点击网页来启动所有这些,你需要安装Tomcat,JSP web服务器环境,然后创建一个合适的网页,并提供一个可点击的按钮,向服务器提交一个请求。那么你需要调用exec来运行.bat文件并检索文本文件的内容。今天我正在玩显示页面,我将添加到答案中。 – DavidHyogo
使用child_process.spawn
你知道这是行不通的,甚至适度安全的系统? –
这是应该在Mac和Linux系统上工作? –