English 中文(简体)
为什么在远程系统上运行批处理文件时出现“路径不正确”错误?
原标题:
  • 时间:2009-01-31 15:34:45
  •  标签:

我需要从本地计算机上运行批处理文件在远程系统上。使用以下代码,我得到以下错误:

Path not correct

我有机器的IP地址,并且我已将批处理文件共享为公共共享,并且共享名称是dsc

这台机器的 IP 地址是 16.181.37.28。

这是我的代码。我知道路径是错误的。我如何给出确切的路径?

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author padmaja
 */

import java.io.*;
class Test{
public static void main(String arg[]){
try{
String command = "cmd /C start 16.181.37.28/dsc/StartVisTsDataCenterMySql-log.bat";
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command);

}catch (IOException e) {
e.printStackTrace();
}
}
}
问题回答

你是想在远程机器上运行脚本还是在本地机器上运行脚本?你的方法会从远程机器读取文件,但在本地机器上运行。

通常在远程计算机上运行某个程序的方法是,在远程计算机上运行一个进程长期监听请求。如果请求到达,该进程将启动您需要运行的批处理文件。

你正在使用 Windows,但是使用 Posix 路径分隔符。尝试使用 "cmd/C\\16.181.37.28\dsc\StartVisTsDataCenterMySql-log.bat"

您可以通过创建一个服务来测试它是否有效:

sc \16.181.37.28 create StartVisTsDataCenterMySql-Log binPath= "cmd /c \16.181.37.28dscStartVisTsDataCenterMySql-log.bat" sc \16.181.37.28 创建 StartVisTsDataCenterMySql-Log binPath= "cmd /c \16.181.37.28dscStartVisTsDataCenterMySql-log.bat"

然后运行它的命令是:

"cmd /c sc \16.181.37.28 停止 StartVisTsDataCenterMySql-Log&sc \16.181.37.28 启动 StartVisTsDataCenterMySql-Log"

你需要以管理员身份连接到共享文件夹(或保存凭据)。一旦确认可以使用,换成 srvany,否则事件日志中会出现错误,批处理文件只能运行30秒。

如果那不是正确的答案,也许您可以详细说明一下真正的要求,并提供一些信息,以确定在Java中重新实现批处理文件是否是一个现实的解决方案。





相关问题
热门标签