Windows-cmd
参考
https://sites.google.com/site/yao27bat/home/basic/bat1
命令帮助
通用方式xxx /?
注意
执行命令中路径包含空格,应该加上双引号””
执行指定脚本
1 | start xxx.bat |
注意:脚本文件编码应该使用 utf-8
指定窗口名称-常用!!!
1 | start cmd /c "title 名字XXX && java -jar -Dfile.encoding=utf-8 C:\tongchuan\svn\emergency\jeecg-module-emergency-start\target\jeecg-module-emergency-start.jar" |
文件
当前目录内查找指定文件
1 | > dir|findstr nginx |
拷贝文件到指定目录-批量查找拷贝
从指定目录批量拷贝文件到指定目录
1 | copy 1652057527584_1652057527585.pdf D:\bak\1652057527584_1652057527585.pdf |
删除指定目录
1 | // 删除一个空目录 |
删除指定目录下模糊匹配的文件
1 | del /F/S/Q "C:\Users\Administrator\AppData\Roaming\Scooter Software\Beyond Compare 4\BCState.*" |
删除指定路径下 N 天前文件
https://blog.csdn.net/hzfw2008/article/details/77744304s
1 | rem 90 天以前文件删除 |
创建文件夹「如果不存在」
1 | if not exist foldername (mkdir foldername) |
拷贝文件夹「包含子文件夹」
1 | set sourcefolder=C:\Tomcat8.0.53\webapps\xxx |
关机
关机
1
shutdown -f -s
重启
1
2
3
4shutdown -f -r
// 推荐。其中,-r 表示重启,-f 表示强制关闭正在运行的程序,-t 0 表示立即重启
shutdown.exe -r -f -t 0
进程「查看、杀死」
查看所有进程
1
tasklist
根据名称查看进程
1
tasklist | findstr java
根据端口号查看进程
1
netstat -ano | findstr 8080
根据进程PID,杀死该进程
1
2强制(/F参数)杀死 pid 为 9088 的所有进程包括子进程(/T参数):
taskkill /T /F /PID 9088根据指定端口号,杀死进程
1
2
3
4
5
6
7
8//根据端口,关闭进程
@echo off
set port=8080
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (
echo kill the process %%m who use the port %port%
taskkill /pid %%m
)
pause脚本「输入端口号,杀死指定 PID 进程」
1
2
3
4
5
6
7
8
9set /p port="please input port:"
netstat -ano|findstr %port%
set /p pid="please input pid:"
taskkill /PID %pid% /F
set /p port="please input port:"
netstat -ano|findstr %port%
set /p pid="please input pid:"
taskkill /PID %pid% /F
根据端口杀死进程-批量脚本
1 | @echo off & setlocal EnableDelayedExpansion |
windows 中批量杀死 Nginx 进程
1 | taskkill /fi "imagename eq nginx.exe" /f |
任务计划
https://sites.google.com/site/yao27bat/home/basic/win7_schtasks
schtasks /?
创建任务
执行程序必须为绝对路径,示例c:\apps\myapp.bat
语法
1 | schtasks /create |
范例
计划任务每 20 分钟运行一次
1
schtasks /create /sc minute /mo 20 /tn "Security Script" /tr \\central\data\scripts\sec.vbs
计划任务每天运行一次,在每天的 8:00 A.M. 运行一次,直到 2001 年 12 月 31 日结束
1
schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc daily /st 08:00:00 /ed 12/31/2001
计划任务每隔一天运行一次,从 2001 年 12 月 31 日起每隔一天在 1:00 P.M. (13:00) 运行
1
schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc daily /mo 2 /st 13:00:00 /sd 12/31/2001
计划任务每六周运行一次
1
schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc weekly /mo 6 /s Server16 /ru Admin01
计划任务在每月的第一天运行,每月的第一天运行
1
schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc monthly
计划任务在每月的最后一天运行
1
schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc monthly /mo lastday /m *
计划任务在每次系统启动的时候运行,每次系统启动的时候运行,起始日期是 2001 年 3 月 15 日
1
schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc onstart /sd 03/15/2001
示例
每天每隔 5 分钟执行一次
查看任务
1 | schtasks /Query|findstr taskname |
删除任务
1 | schtasks /Delete /TN taskname |
执行时如何隐藏 cmd 窗口
最小化
1
2/min 最小化
start /min D:\xxx\start.bat
窗口控制
1 | cmd /c dir 是执行完dir命令后关闭命令窗口. |
应用程序
一个应用可能存在多个进程
查看正在运行的程序
1 | tasklist|findstr chrome |
杀死指定程序
1 | taskkill /f /im chrome.exe |
根据 pid 杀死进程,有时候一个应用有多个 pid 进程,则需要执行多次
环境变量
查看所有环境变量
set 命令使用简介https://blog.csdn.net/livelylittlefish/article/details/6093836
1
set
查看指定环境变量
1
2
3
4
5set 变量名
示例
C:\Users\Administrator>set JAVA_HOME
JAVA_HOME=D:\Program Files\Java\jdk1.8.0_191设置环境变量
1
2
3
4set 变量名=变量值
示例
set oracle_sid=orcl
用户
获取本机全部用户
1 | @echo off |
当前用户
1 | echo 当前登录本机的账户是:%username% |
日期和时间
日期
1 | echo %date% |
时间
1 | echo %time% |
日期+时间
1 | echo %date%%time% |
日期+时间「yyyymmddhhmmss」
1 | echo %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2% |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 王文哲的博客!