windo总结2 批处理编程 域环境
bat的编程规范
(1) @echo 关闭DOS窗口信息 echo 显示窗口
(2)pause 结束暂停的功能 pause >nul 就没有 请按任意键继续的信息了
(3) bat 命令 忽略大小写
(4)cmd中粘贴和复制,在cmd中右键点击标记,取要复制的内容,取完后,右键一下,表示复制完成,粘贴到其他地方即可 鼠标点完复制后,到cmd中,右键选择粘贴
(5) 帮忙命令 查看当前命令的使用格式 /?
(6) 设置dos 窗口的颜色 color OE
(7) dos窗口的title 的名称修改 title "123"
批处理的特殊字符
(1)特殊字符
&& 前一条命令执行正确的时候,才执行下一条命令 &&
|| 前一条命令执行错误或者正确的时候,才执行下一条命令 ||
> 清空追加内容
>> 追加到文件最后一行
| 管道
rem 注释 rem user
cls 清屏
^ 换行符
(2)文件系统
新建文件 echo > a.txt
删 del a.txt
参数: /s 递归删除
/q 静默删除
del /s /q test\1.txt
重命名 剪贴 命令
重命名 move test\1.txt test\2.txt
剪贴 move test1\1.txt test\2.txt
查看文件内容 type test1\1.txt
清空文件内容 > test\1.txt
追加文件内容 echo “123” >>test\1.txt
文件查找
查找当前目录下以 TXT结尾的文件,遍历要查找的目录下所有的数据,通过管道给到 find 已一定的条件作为筛选就可以找出来
dir |find ".txt"
tree 查看目录的结构,可以查看到递归目录下的内容
dir 查看当前目录下文件和目录
(3)目录的操作
增
目录的创建 可以递归创建目录 mkdir a
删
rmdir 删除目录 递归删除/s 安静模式 /q
改
目录名的重命名 ren C:\bbb ccc
查
dir 查看目录 不显示隐藏目录和文件
dir /A 查看隐藏文件
dir /l 以小写的形式展示出来
切换目录
cd .. 切换到上级目录
切换不同的盘符 输入 D: 即可
复制目录
#robocopy 数据同步工具
语法格式
robocopy “源目录” “目标目录” 文件名(可以为空,可以使用通配符) 参数
默认参数 复制
/S 复制所有文件,不包括空目录
/E 复制所有文件,包括空目录
镜像克隆
/MIR
移动
/MOV 移动文件 (删除源文件)
/MOVE 移动文件和目录 (删除源目录和文件)
加系统环境变量目录 * 代表所有文件 目标目录没有的需要创建目录,也可以直接复制源目录 到目录目录下。
robocopy "源目录" "%HOMEPATH%\Desktop" *
robocopy "源目录" "目标目录" * /E 复制所有文件,包括空目录
用户和用户组
用户查看 net user test
用户添加 net user test /add 用户添加,并设置密码 net user test 123456 /add
用户添加并设置管理员权限 net localgroup administrators test /add
用户删除 net user test /delete
查看用户组 net localgroup
删除用户组内的用户 net localgroup users test /delete
添加用户到用户组内 net localgroup administrators test /add
系统进程命令
netstat
参数
-a 显示所有监听的信息
-t 显示所有tcp协议的端口 -u 显示所有tcp协议的端口
-n 显示数字形式的IP,不转换成域名
查找当前已连接的网络连接netstat -an |find "ESTABLISHED"
start命令
参数
/B 不启动新的窗口
调用其他脚本
call 加 目录 文件名
tasklist命令查看进程列表
参数
可以本地也可以远程 tasklist /S ip 地址 /u
tasklist /FI 使用筛选器 以什么类型 加上判断条件
IMAGENAME 镜像名的筛选器
PID 进程号的筛选器
要找到 qq的进程,以镜像名加上通配符
tasklist /fi "IMAGENAME eq qq*"
taskkill 命令 关闭进程的命令
/T 终止该进程及由它启动的子进程
/F 强制终止进程
/PID 以pid号确认的进程的方式
/IM 以进程名的方式表示 可以使用 * 作为匹配符
关闭PID号 taskkill /pid 6248
关闭进程名 taskkill /im WeChat.exe
示例 删除进程中有qq的进程名
taskkill /fi "imagename eq qq*" /f /t
关机命令
立即关机
shutdown /s /p 忽视超时和警告的
shutdown /s /t 1 立即关机 ,时间1秒
shutdown /l 注销系统
shutdown /r 重启
shutdown /9 重启后,自动启动当前系统的进程
传参
%变量 在脚本内部表示 ,参数的传递 使用空格的形式间隔
参数的传递 在脚本的后面 传 入 第一个参数 0也就是默认参数, 1 是第二个参数
时间
date
date 命令 是修改日期的命令
date /T 是显示当前的系统日期
time
time 修改当前时间的命令
time /T 显示当前系统的时间
环境变量
环境变量 查看set
环境变量的使用 %%
网络命令
###ping
指定次数 -n
自定义数据包大小 -l
持续ping -t
###telnet
telnet 192.168.1.1 22 测试端口
测试端口 特性
###tracert
追踪路由的命令
###ipconfig
查看ip信息的命令
ipconfig /all 获取更加详细的内容
apr19
IP地址 对应mac地址的
条件语句
##条件语句
一行代码 转换成多行代码
if exist c:\test\a.txt (echo ok
) else (
echo no )
##变量的设置
set v=hello
if else条件
判断 文件是否存在 exist 文件目录+ 文件
for
遍历目录
for /d %%a in (*)
#交互操作
goto 语法 跳转到对应的行
set /P 变量名= 空 命令行开关允许将变量数值设成用户输入的一行输入。读取输入行之前,显示指定的 promptString。promptString 可以是空的。
#暂停 批处理
ping 127.0.0.1 -n 5 >nul
-t 持续
解决远程文件上已管理员权限执行脚本的方法
lsrunase
/user:administrator
/password:xxxx /domain:域名
/command:"robocopy '123.bat' 'C:\' *"
/runpath:%homepath%\desktop
user 为运行的账号
password 为密码加密后的字串
domain 为机器名或域名,也可留空代表本机
command 为要运行的程序名,如果携带参数需要在命令的首尾加引号
runpath 为程序启动的路径
同域升级
DC升级( 包含系统版本升级 域级别升级)
2008以后的版本 不需要手动升级 域级别 和 林的级别,会自动同步
0 、环境情况
查看计算机域的角色: net accounts
组策略 在升级dc的中,建议重新设置,因为dc的系统版本不同,策略有的不生效
正式环境下:
DC dns 首选自己 备选对方
主域 DC01 备域 DC02 升级域 DC03
1、新域控 切换 成备域
降级操作
1、备域:关机一段时间, 确定域环境正常
2、备域操作:站点和服务,找到server ntds属性, 常规 全局编录 取消,确保备域不是GC,修改本机DNS首选指向主域 ,调整DHCP的dns 只指向主域 ,
3、在domain controlers 查看是否已变成 DC状态
4、备域操作: 降级备域,退域关机。
1、升级域 DC03 入域,计算机名使用DC02, 进现有域 ,dns 首选自己 备选主域 ,开启GC功能 ,开启dns 传送到所有计算机
2、调整DHCP的dns 分发把升级域DC02加入 (现在的DC02 已经是升级成备域了。)
3、在domain controlers 查看是否已变成 GC状态
2、备域控切换主域
1、查看 DC02 的dns记录是否同步。
2、备份DC01 的组策略
3、在dc02 上 ntdsutil 迁移角色主机
4、查看计算机域的角色: net accounts 是否是主域
5、更新DNS分发客户端首选为 dc02的IP,
6、等待一段时间,确认域ok,
3、备域退域,加新的备域
1、关机dc01 确定域环境正常
2、主域操作:站点和服务,找到server ntds属性, 常规 全局编录 取消,确保备域不是GC,修改本机DNS首选指向DC02主域 ,调整DHCP的dns 只指向DC02主域 ,
3、主域操作: 降级备域,退域关机。
添加备域机器
4、在加一台新的域 计算机名使用DC01, 进现有域 ,dns 首选自己 备选主域 ,开启GC功能 ,开启dns 传送到所有计算机,使之成为备域即可。
浙公网安备 33010602011771号