文章目录
内部命令
操作系统的内部命令。
 win + r, 输入cmd 打开命令窗口;
 如:
- dir,查看当前目录下的内容
 - cd,切换目录
 - copy, 拷贝
 - echo,打印
 
变量
windows下的环境变量,使用set设置、打印、删除;
 windows 下的所有的命令都可以放入bat批处理文件,正如linux下的命令都可以放入shell脚本中。
# 创建变量
set age=23
# 打印
set age
# 删除变量
set age=
# 帮助
set /?
# 查看指定环境变量的值
set xxx
set pythonpath # 不区分大小写
# 表达式
set /a 3+5
# 等待用户的输入
set /p addr=提示:   
 
案例:让用户输入一个数值,打印出用户输入的内容。
# test.bat
:: 关闭回显  注释
@echo off
:: 等待用户的输入
set /p value=请输入一个数值:
:: 表达式计算
set /a result=value/2
:: 输出打印
echo 计算结果:%result% 
:: 暂停  防止窗口退出
pause > null
 
常用命令
- title, 改变命令窗口的标题

 - mode, 改变命令窗口的模式; mode 100,80; 设置宽高
 - color, 改变背景色、字体色
 - hostname 查看当前主机名;
 - ipconfig 查看ip
 - ping ip/domain 测试网络连通性
 - :: 和 rem 均表示注释内容
 - exit 表示退出
 - goto 跳转
 
goto part2
:part1
echo this is part1
:part2
echo this is part2
 
- start 打开目录、文件、网址、应用程序等
 
rem 打开目录  不区分大小写
start e:/dl
rem 打开文件
start e:/a.txt
rem 打开exe应用程序  单词有空格 加双引号
start c:/"programms files"/xx.exe
rem 打开网址
start www.baidu.com
rem 打开有空格的目录
start "" "cc dd"
 
- call 程序的互相调用,
bat以ANSI/gbk编码且使用绝对路径 
@echo off
rem  调用子程序
echo 我是主程序
rem 调用其他程序,使用绝对路径
call e:/e.bat
pause > null
 
- sort 排序 ;
 
rem 升序
sort a.txt
rem 降序 
sort /r a.txt > result.txt  2>error.txt  :: 2表示错误输出 
rem 重定向   写入
rem 追加重定向 >>  追加写入
rem  <   读取文件内容
 
- type 查看文件内容;
 - shutdown 关闭计算机
 
shutdown /?   帮助
:: 一分钟后重启
shutdown /r /t 60  
:: 取消关闭
shutdown /a
:: 关闭计算机
shutdown /s
 
- telnet 远程登录
 
telnet ip port
 
-  
mkdir md 创建目录
 -  
rmdir 删除目录
 -  
del /q file 删除文件
 -  
tasklist 查看所有进程
tasklist | findstr conhost.exe -  
taskkill 杀掉指定的进程
taskkill /im pname
taskkill /pid pid /f 根据pid强制杀掉进程 -  
net 管理系统服务
net start ServerName
net stop ServerName -  
sc 注册服务或者删除服务等;
sc create MyFlask binpath= d:/lauf/bin/fserver.exe start= auto displayname= MyFlask
sc delete MyFlask -  
netstat 查看网络连接
netstat -ano | findstr TCP
 
特殊命令符
- 管道 | ,将结果向后传递
 
:: 查询包含指定内容的文件
dir | find ".py"
netstat -ano | findstr TCP
 
- 组合& ,所有命令均执行
 - 组合 &&, 前一个命令执行失败,后面不再执行
 - 组合 || 前一个命令失败,则再执行后面的
 - ()表示代码块
分支语句综合: 
@echo off
if exist e:/e1.bat  (
echo 存在指定的文件
) else (
type aa.txt && echo 创建文件成功
)
pause > null
 
综合案例
获取当前目录下的xxxx.whl,使用pip自动安装该python二进制文件
- 制作python whl文件
 
# 编写好python 文件  my_module.py
# 发布python模块,编辑setup.py
from setuptools import setup
setup(
	name="my_module",
	version="1.0",
	author="laufing",
	py_modules=["my_module", "other_module"]
)
 
命令行下执行:python setup.py bdist_wheel,在当前目录下会生成dist目录,里面就有whl二进制文件。
- for循环,命令行下使用% ; 批处理中使用%%
 
::命令行下操作 使用单个%   bat中操作使用%%
for /f "tokens=1,2,3* delims= " %i in (a.txt) do @echo %i %j %k %l
:: 文件a.txt中的一行 根据delims分割符 分割后的第1 2 3 及以后的部分,分别赋值给
:: i j k l  变量连续
 
- 单引号表字符;双引号表整体,同shell
 
案例实现: 编写如下bat文件
@echo off
cd dist
:: 获取当前目录下的whl二进制文件
dir | findstr .whl > target.txt
:: bat中使用%%     * 表示剩余的部分   /f 表示文件
for /f "tokens=1,2,3,* delims= " %%i in (target.txt) do (
:: 安装
pip install %%l --force-reinstall 
)
:: 删除临时文件
del target.txt
pause 
 
外部命令
它是特定目录下的一个exe程序,如C:\Windows\System32下的exe程序
 mstsc, 远程连接
 ping, 测试网络连通性










