如何批处理同时修改ip和hosts?
答案:3 悬赏:20 手机版
解决时间 2021-08-12 17:37
- 提问者网友:火车头
- 2021-08-12 13:48
cls
@ECHO OFF
CLS
color 0a
GOTO MENU
:MENU
ECHO.
ECHO. =-=-=-=-=批处理菜单示例=-=-=-=-=
ECHO.
ECHO. 1 外网
ECHO.
ECHO. 2 内网
ECHO.
ECHO. 3 退 出
ECHO.
ECHO.
ECHO.
echo. 请输入选择项目的序号:
set /p ID=
if “%id%”==“1” goto cmd1
if “%id%”==“2” goto cmd2
IF “%id%”==“3” exit
PAUSE
:cmd1
echo 正在修改。。。。请稍等
rem 本行是注释,下行中的“本地连接”是你网卡的名字,下面命令中的xxx依次是,IP地址 掩码 网关.我的是固定IP的,就不告诉大家了
netsh interface ip set address name="本地连接" source=static addr=192.168.1.47 mask=255.255.255.0 gateway=192.168.1.254 gwmetric=1
@echo off&&setlocal enabledelayedexpansion
set datais=%SystemRoot%\system32\drivers\etc\
if exist !datais!hosts_bak del !datais!hosts_bak/f/q
for /f "tokens=*" %%a in (!datais!hosts) do (
set var=%%a
set "var=!var:10.138.220.1=192.168.1.2!"
>>!datais!hosts echo !var!
)
ren !datais!hosts hosts_bak
ren !datais!hosts hosts
echo 成功了,按任意键退出!
pause>nul
exit
:cmd2
echo 正在修改。。。。请稍等
netsh interface ip set address name="本地连接" source=static addr=10.138.220.47 mask=255.255.255.0 gateway=10.138.220.1 gwmetric=1
@echo off&&setlocal enabledelayedexpansion
set datais=%SystemRoot%\system32\drivers\etc\
if exist !datais!hosts_bak del !datais!hosts_bak/f/q
for /f "tokens=*" %%a in (!datais!hosts) do (
set var=%%a
set "var=!var:1192.168.1.2=10.138.220.1!"
>>!datais!hosts echo !var!
)
ren !datais!hosts hosts_bak
ren !datais!hosts hosts
echo 成功了,按任意键退出!
pause>nul
exit
不知错在哪里
最佳答案
- 五星知识达人网友:三千妖杀
- 2021-08-12 14:04
脚本可以实现,参考:
changeHosts.vbs
=====================================================================
Set objFSO = CreateObject( "Scripting.FileSystemObject ") '文件系统对象
strSystem = GetSystemPath() '获取System目录
strHostPath = GetHostFilePath() 'host 文件所在目录
Call ModifyHost(strHostPath) '修改HOST文件
'========================================================================
'获取SYSTEM目录
'========================================================================
Function GetSystemPath()
Const SystemFolder = 1
Set GetSystemPath = objFSO.GetSpecialFolder(SystemFolder)
End Function
'========================================================================
'获取HOST文件所在目录
'========================================================================
Function GetHostFilePath()
GetHostFilePath = strSystem & "\drivers\etc "
End Function
'========================================================================
'去除文件只读属性
'========================================================================
Function ClearFileAttrib(strFile)
If objFSO.FileExists(strFile) Then
Set f = objFSO.GetFile(strFile)
f.Attributes = 0
End If
End Function
'========================================================================
'修改HOST文件
'========================================================================
Function ModifyHost(strHostPath)
strHostFile = strHostPath & "\hosts "
strHostBak = strHostPath & "\hosts.bak "
Const ForReading = 1, ForWriting = 2, ForAppending = 8
objFSO.CopyFile strHostFile , strHostBak
Set objFile = objFSO.OpenTextFile(strHostFile, ForReading, False)
strContents = objFile.ReadAll
objFile.Close
Set objFile = objFSO.OpenTextFile(strHostFile, ForAppending, False)
objFile.WriteBlankLines 1
compResult = Instr(strContents, "192.168.0.136 ")
If compResult = 0 Then objFile.WriteLine( "192.168.0.136 " & Chr(9) & "bwprd ")
compResult = Instr(strContents, "192.168.0.135 ")
If compResult = 0 Then objFile.WriteLine( "192.168.0.135 " & Chr(9) & "bwdev ")
compResult = Instr(strContents, "192.168.0.171 ")
If compResult = 0 Then objFile.WriteLine( "192.168.0.171 " & Chr(9) & "bwqas ")
objFile.close
End Function
全部回答
- 1楼网友:英雄的欲望
- 2021-08-12 15:36
DNS,Domain Name System或者Domain Name Service(域名系统或者余名服务)。域名系统为Internet上的主机分配域名地址和IP地址。用户使用域名地址,该系统就会自动把域名地址转为IP地址。域名服务是运行域名系统的Internet工具。执行域名服务的服务器称之为DNS服务器,通过DNS服务器来应答域名服务的查询。 更多请参考 http://zhidao.baidu.com/question/27369506.html
www.fangyou-sh.com 提供仅供参考!
- 2楼网友:迷人又混蛋
- 2021-08-12 15:21
飘过
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯