Windows命令行操作
rehoni / 2022-09-01
1、Windows后台执行bat脚本
通过vb脚本来隐藏dos窗口,后台执行
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin
::
redis-server.exe
建立脚本流程
创建main.vbs文件,调用运行bat,放入后台执行
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c A.bat",0
ws.run "cmd /c B.bat",0
ws.run "cmd /c C.bat",0
建立主脚本main.bat,循环执行
@echo off<nul 3>nul
:one
echo %date:~0,10% %time:~0,-3% 守护进程正在监控系统...
start main.vbs
ping 127.0.0.1 -n 10>nul
goto one
通过ping命令来实现sleep 10秒的操作,每10秒执行main.vbs里边执行的3个脚本。
start命令
通过在bat脚本中,使用start命令来后台执行需要执行的脚本或者程序
start /b a.bat
Windows开机自动执行bat脚本
编写bat脚本放置在以下位置
C:\\Users\\xxxx\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup
即可实现开机自动执行该脚本
执行Java脚本
编写脚本时,如果有多java环境,需要设定好执行的JAVA_HOME,即指定的jdk目录。
如果jdk目录包含空格,如Program Files这样的目录,可以用""
进行转义;如果转义无用,则可以考虑使用绝对路径。
@echo off
C:
cd C:\\Program Files\\Java\\jdk1.8.0_152\\bin
start /b java -jar E:\\nrec\\ImpSftp\\trans.jar -propath E:\\nrec\\ImpSftp\\imp.properties
# E:\\nrec\\ImpSftp\\jdk1.8.0_152\\bin\\java -jar E:\\nrec\\ImpSftp\\trans.jar -propath E:\\nrec\\ImpSftp\\imp.properties
参考
2、查看和杀死进程
查看进程
tasklist | findstr “java”
杀死进程
taskkill命令
# taskkill /pid[进程码] -t(结束该进程) -f(强制结束该进程以及所有子进程)
taskkill /im 进程名称
示例:用taskkill /im tomcat7.exe
命令关闭tomcat。
注:有两种方法查进程的PID码:
- 在命令行下用tasklist命令查出进程的PID码
- 在任务管理器中的查看选项中勾选PID那一项
例如:taskkill /pid 2345 -f -t
;
wmic process
wmic process where name="进程名称" call terminate
这个不需要知道进程的PID码
ntsd
ntsd -c q -p [PID进程码]
参考
3、ping不通或丢包时如何进行链路测试?
Windows操作系统Tracert介绍和使用
Tracert是路由跟踪程序,Tracert命令用来显示数据包到达目标主机所经过的路径,并显示到达每个节点的时间。Tracert命令功能与Ping命令类似,但获得的信息要比Ping命令详细,它可以显示数据包所走的全部路径、节点的IP以及时间。
-
登录Windows云服务器。
-
打开cmd命令窗,执行以下命令跟踪IP地址。
tracert IP地址/网站地址
例如:tracert www.example.com
对数据节点分析如下:
- Tracert默认最大跳数30,第1列为起跳顺序号。
- Tracert每次会发送三个数据包,第2、3、4列为对应三个数据包的返回时间。第5列为跳转的IP节点。
- 假如某一层中出现了“* * * request timed out”,那么则需要定位这层的问题,可能这里导致连接不到目标节点。
Windows操作系统WinMTR介绍和使用
-
登录Windows云服务器。
-
通过浏览器访问外网,搜索并下载WinMTR安装包。
-
解压缩WinMTR安装包,WinMTR无需安装,可以直接解压运行。
-
双击WinMTR.exe,打开WinMTR工具。
-
在WinMTR窗口的Host处,输入目的服务器IP地址或者域名,单击“Start”。
-
根据实际情况,等待WinMTR运行一段时间,单击“Stop”,结束测试。如下图所示:
测试结果的主要信息如下:
- Hostname:到目的服务器要经过的每个主机IP或域名。
- Nr:经过节点的数量。
- Loss%:对应节点的丢包率。
- Sent:已发送的数据包数量。
- Recv:已接收到响应的数量。
- Best:最短的响应时间。
- Avrg:平均响应时间。
- Worst:最长的响应时间。
- Last:最近一次的响应时间。
4、排查端口占用
问题:例如springboot应用启动失败
***************************
APPLICATION FAILED TO START
***************************
Description:
Web server failed to start. Port 8080 was already in use.
Action:
Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.
打开命令窗口(以管理员身份运行),开始—->运行—->cmd,或者是 window+R 组合键,调出命令窗口。
# 该命令列出所有端口的使用情况。
netstat -ano
# 查看被占用端口对应的 PID
C:\Windows\system32>netstat -ano|findstr "8080"
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 1264
TCP [::]:8080 [::]:0 LISTENING 1264
# 查看指定 PID 的进程
C:\Windows\system32>tasklist|findstr "8080"
强制(/F参数)杀死 pid 为 9088 的所有进程包括子进程(/T参数):
taskkill /T /F /PID 9088
或者是我们打开任务管理器,切换到进程选项卡,在PID一列查看9088对应的进程是谁,如果看不到PID这一列,如下图: