java中如何执行powershell脚本

在cmd执行powershellh:hello.ps1没有问题。在java中执行cmd/ctasklist或是cmd/cipconfig之类的也都可以获取信息到控制台可就... 在cmd执行 powershell h:hello.ps1没有问题。
在java中执行cmd/c tasklist 或是 cmd/c ipconfig之类的也都可以获取信息到控制台
可就是执行cmd/c powershell h:hello.ps1什么都没有
有什么方法可以在java中执行powershell的脚本,并获取到信息?
展开
 我来答
CM娱新世界
推荐于2016-04-18 · TA获得超过308个赞
知道小有建树答主
回答量:337
采纳率:100%
帮助的人:141万
展开全部
String cmdLine = "powershell -file \""+this.scriptPath+"\" get-performance";  
Process ps = Runtime.getRuntime().exec("powershell -file C:/eclipse/test.ps1");  
ps.getOutputStream().close(); // It seems that powershell first reads all input from it's input stream before going.  
String rs = "", line;  
BufferedReader rd = new BufferedReader(new InputStreamReader(ps.getInputStream()));  
try{  
    while((line = rd.readLine()) != null){  
        rs += line;  
    }  
}finally{  
    rd.close();  
}  
System.out.println(rs);
1721000379
推荐于2016-02-18 · TA获得超过169个赞
知道小有建树答主
回答量:77
采纳率:0%
帮助的人:58.5万
展开全部
可以通过jni调用,或者是Runtime,
jni可以调用其它各个语言,
Runtime可以通过exec
追问
jni没用过,现在是在用runtime的exec(cmd)
String cmd = "cmd /c ipconfig" 这条可以正常获取
String cmd = "cmd /c powershell h:hello.ps1" 则不行,powershell h:hello.ps1这条命令虽然在cmd可以执行,但是在java里获取不到,我想是这个String cmd 没写对。
追答
public static void main(String[] args) {
BufferedReader br = null;
try {
Process p = Runtime.getRuntime().exec("net user");
br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
} finally {

if (br != null) {
try {
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式