用Python生成批处理文件,用于修改IP、DNS

原因:管理windows虚拟机,需要修改IP、DNS等

直接给出代码

import argparse
import os

# 获取当前脚本路径
current_path = os.path.dirname(os.path.abspath(__file__))

# 用于接受命令行参数(ip)
parser = argparse.ArgumentParser(description='Process a IP.')
parser.add_argument('ip', metavar='N', type=str, nargs='+',
                    help='ip address')

args = parser.parse_args()

# 获取ip,只取第一个
ip = args.ip[0]

# 根据ip,生成对应gateway
gateway = "192.168.{}.1".format(ip.split('.')[2])

# 这句是设置ip的命令(当前是设置静态IP)
change_ip = 'netsh interface ip set address name="本地连接" source=static addr={} mask=255.255.255.0 gateway={} 1'.format(ip, gateway)

# 配置DNS服务器,一般都是固定的,所以没有放到参数中
first_dns = "192.168.16.2"
# 备用DNS服务器
second_dns = "192.168.19.2"

# 设置dns及备用dns
change_dns = 'netsh interface ip set dns name="本地连接" source=static addr={}'.format(first_dns)
append_dns = 'netsh interface ip add dns name="本地连接" addr={}'.format(second_dns)

# 查看配置信息
check_ip = "ipconfig /all"

bat = [change_ip, change_dns, append_dns, check_ip]

filename = "{}.bat".format(ip.replace('.', '_'))
# 将其写入bat中,可以将其中的内容复制出来,可以手动复制,也可以使用pyperclip库,将内容直接复制到粘贴板
with open(os.path.join(current_path, filename), 'w', encoding='utf-8') as f:
    for i in bat:
        f.write(i + '\n')


# 执行命令,将IP放入后面
python test_cmd.py 192.168.67.27

pyperclip用法

import pyperclip

text = '123'
pyperclip.copy(text)

你可能感兴趣的:(python基础,Windows)