【微信Java开发 --1---番外1】在windows下,使用JAVA执行多条DOS命令+文件夹/路径中有空格怎么解决【目的是实现内容穿透外网】...

内网穿透外网的那一篇,参正集1

但是每次都要Ctrl+R 启动DOS窗口,也就是CMD,一句一句的去粘,略显繁琐。

所以将这些任务写在JAVA程序中,启动一次程序就可以实现【内网穿透】的功能,多好啊!

 

首先把流程走一遍

1.D盘存放内网穿透工具 ,那就在D盘新建一个文件夹,用于存放bat文件的,起名字叫run cmd

2.在run cmd中新建一个文本文件

 

在新建的文本文件中粘贴如下的代码:

echo 
d:
cd ngrok_windows
natapp -config ngrok.cfg -subdomain zjlm 80
natapp -authtoken=0931c612e83742ec
pause

 

已经走过内网穿透过程的 ,应该对  这段比较熟悉。

echo        DOS命令,表示cmd启动的以下的dos命令都是显示的状态

d:            DOS命令,表示进入d盘

cd ngrok_windows   DOS命令,进入d:盘下的ngrok_windows文件夹

下面的两行在【正篇1】中有解释

pause      DOS命令,点击bat文件就可以直接启动cmd.exe,从而启动DOS窗口,但是会闪一下就没了,你可以试一下,加上pause之后可以起到暂停的作用

 

3.将这个a.txt文本文件更改为a.bat文件

 

4.新建java一个类,放入以下代码:

import java.io.IOException;


/**
 *  Java调用windows的DOS命令
 */
public class RunWindowsCommand{
    public static void main(String[] args) throws InterruptedException {
            try {
                String cmd = "cmd /c start "+"D:/run cmd/a.bat".replaceAll(" ", "\" \""); 
                Runtime.getRuntime().exec(cmd) ;
            } catch (IOException e) {
                e.printStackTrace();
            }
   
    }
}

 

其中,刚刚的文件夹名中带有空格即: run  cmd文件夹

这在java中无法识别,必须将其进行

.replaceAll(" ", "\" \"");处理,才可以。


5.效果图如下:

 

 再来看看原理如何
1.首先cmd.exe程序执行DOS命令就是调用一个一个的bat文件
2.bat文件中存放的就是DOS命令,可以是一条,也可以是多条
3.java程序要做的就是启动cmd.exe,找到.bat文件,运行它

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值