注意:请用管理员方式打开cmd,同时保证所有路径和文件名没有中文。。
记一件离谱的事情:cmd切换到我自己创建的用户的桌面的时候不能执行net user命令。执行会卡死。但是在Desktop的上层目录或者下层目录就可以执行。有没有懂得给我讲解一下。
算数运算
@echo off
set /a var = 10*(9-7)
echo %var%
pause
netstat
这里""里面区分大小写了
netstat -an |find "ESTABLISHED"
通过变量进行添加用户
@echo off
echo %1
echo %2
net user %1 %2 /add
pause
执行:
rem 注释
1.bat admin 123456
type:查看文件类似cat
type 1.bat
在一个脚本中调用另一个脚本。
@echo off
rem 首先关闭系统的echo
echo %1
echo %2
rem 添加用户
net user %1 %2 /add
call 2.bat %1
pause
脚本二:
@echo off
net user %1
连接到同一局域网下别的终端进行任务列表显示:
tasklist /S 192.168.0.2 /u admin /p 123456
任务筛选:
rem 筛选出pid = 123的进程
tasklist /fi "pid eq 123"
关闭进程:
说明
----
1) 只有在应用筛选器的情况下,/IM 切换才能使用通配符 '*'。
2) 远程进程总是要强行 (/F) 终止。
3) 当指定远程机器时,不支持 "WINDOWTITLE" 和 "STATUS" 筛选器。
rem 关闭记事本进程
taskkill /im notepad.exe
关闭子进程
rem /t 是关闭子进程
taskkill /pid 123 /t
远程服务器关闭进程
rem 关闭服务器192.168.0.2上的 pid是3的进程
rem 远程服务器必须用/f /f是强制终止
taskkill /s 192.168.0.2 /u admin /p 123456 /fi "pid eq 123" /f
定时任务
at已经弃用 请用schtasks.exe
输出环境变量
rem 输出系统环境变量的时候要把变量前后各加一个%
echo %os%
删除文件夹
rem rd是rmdir的缩写 /s是强制删除
rd /s test
rmdir /s test
dir 显示文件或者文件夹
mkdir 创建文件夹
rmdir 删除文件夹
del 删除文件
cd 切换目录
ren / rename 重命名
copy 复制
move 移动/重命名
将用户添加到分组
rem 将yaohupan 添加到管理员组内
net localgroup administrators yaohupan /add
将用户从分组删除
/将yaohupan从用户组删除
net localgroup users yaohupan /delete
网络相关命令:
net user 用户操作命令
net localgroup 用户组操作命令
ping 网络联通状态检测
telnet 网络连接命令
ipconfig 看ip
tracert 看路由信息
arp arp消息命令
if else
rem if/else 可以写在一行
@echo off
rem 演示if-else结构,判断字符串是否是规定的字符串
set var=hello
if %var%==hello (echo ok) else (echo no)
pause>nul
rem pause>nul表示打开一个空的cmd显示你写的脚本
如果if-else写在不同而行
@echo off
if exit C:\Users\yaohupan\Desktop\a.txt(
echo file is find?
del C:\Users\yaohupan\Desktop\a.txt
) else (
echo file is not find
)
pause>nul
for 循环
文件夹
@echo off
rem /d for循环文件夹
for /d %%a in (*) do if %%a==test rmdir %%a
for /d %%a in (*) do echo %%a
pause>nul
文件
@echo off
rem 遍历桌面是否又txt文件,如果有输出文件名
for /r "c:\Users\yaohupan\Desktop" %%var in (*.txt) do echo %%var
pause>nul
不止可以输出文件名,还可以做一些别的操作。路径不能有中文名否则可能会报错。
遍历数字,可以定义(开始,步长,结束)
@echo off
rem 遍历数字(开始,步长,结束)
rem 1是开始,2是步长,20是结束
for /L %%var in (1,2,20) do echo %%var
pause>nul
可以用作ping不同ip
@echo off
rem ping不同ip
rem %1代表你输如的东西比如说你保存该代码为ipTest.bat ,你在cmd执行要输入"ipTest.bat 192.168.0"
for /L %%var in(1,1,20) do ping %1.%%var
pause>nul
遍历文件内容操作
@echo off
rem 遍历文件内容
for /f %%var in (3.bat) do echo %%var
pause>nul
goto语句
@echo off
echo 1.show ip address
echo 2.show network link
ehco 3.show directory
:main
echo Enter your option:
set /p opt=
if %opt%==1 goto one
if %opt%==2 goto two
if %opt%==3 goto three
echo Invalid option
goto main
:one
ipconfig /all
pause>nul
exit
:two
netstat -an
pause>nul
exit
:three
dir
pause>nul
exit