原因:管理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)