上运行HTML

问题描述:

我需要运行一个.bat文件与JavaScript .bat文件,当用户点击网页上的链接。 .bat文件基本上运行另一个可执行文件并将其输出保存在文本文件中。所以我想要的是一旦用户点击链接到网页上的.bat文件,创建该文本文件。现在,当我单独执行它会创建一个与内容的文本文件,但不知何故,当我点击链接它会创建一个空的文本文件,我的.bat文件是可以正常使用。我看了所有的路,他们都很好; 我使用 批处理文件, 我还试图 功能runApp(其) {的WshShell =新的ActiveXObject( “WScript.Shell”); WshShell.Run(which,1,true); } 但他们两人刚刚创建的文本文件,而不是把内容上运行HTML

没有任何一个有对此问题的任何想法,也没有任何其他办法做到这一点,就像运行原始.bat文件和然后直接使用html/javascript获取文本文件的输出结果?

任何并欣赏帮助 感谢

+1

你知道这是行不通的,甚至适度安全的系统? –

+0

这是应该在Mac和Linux系统上工作? –

你不说什么环境中,您与工作,我猜你没有与服务器端环境中工作的任何东西。 JavaScript通常在浏览器中工作,以响应用户的点击和鼠标移动等,但严格限制在浏览器范围内。你所要做的是执行的I /浏览器正在运行(如果你是在本地运行)的底层操作系统或在正常的网页环境中的服务器端操作系统O操作。这不仅仅是一个安全问题 - 对于这个问题,JavaScript并不直接连接到客户端的操作系统或服务器端操作系统。

你需要的是像Apache或IIS等网络服务器环境,可能运行的环境如ASP.NET,JSP,PHP(带有像CodeIgniter这样的好框架),或者,而不是我,CGI。

用户点击一个链接或提交按钮,并且向服务器发送请求。相关的服务器端程序处理请求,运行您所说的I/O操作并用文本进行响应。 JavaScript在大多数流程中并不重要。当你试图找出如何以某种奇特的动态方式显示响应时,它只会再次出现。

有成千上万的教程在那里:

说了这么多,在那里我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中的

+0

谢谢我会试试:) – user1285

+0

所以我试图在JAVA中,我这样做:Runtime.getRuntime()。exec(“cmd/c start test.bat”);但它仍然没有创建内容的文本文件,只是一个空的文本文件:( – user1285

+0

Shaleen,我仍然试图猜测你在什么环境。你想从命令行或什么?如果你想通过点击网页来启动所有这些,你需要安装Tomcat,JSP web服务器环境,然后创建一个合适的网页,并提供一个可点击的按钮,向服务器提交一个请求。那么你需要调用exec来运行.bat文件并检索文本文件的内容。今天我正在玩显示页面,我将添加到答案中。 – DavidHyogo

使用child_process.spawn