hosts文件替换

工作需要,要修改很多计算机的hosts文件,采用bat批量完成
解决的问题:
1.pc工作在非管理员权限,右键管理员权限太麻烦,因此采用执行中申请管理员权限的方式
2.hosts和替换脚本放在某台pc机上,其他pc以共享文件夹的方式访问,但cmd命令行无法将UNC路径作为当前目录,这样就不方便识别和脚本同目录的hosts文件.
3.执行备份替换前,要先新版hosts文件是否和Batch文件在同一目录,防止错误操作.
4.不管文件是否完成更新,都需要给出提示,并且自动关闭终端.
对于问题1,参考 https://blog.csdn.net/lijialong1313/article/details/54171535
对于问题2,参考 https://www.jianshu.com/p/2d3190f592c5
对于问题3,参考 https://blog.csdn.net/qq_39720249/article/details/85067931
对于问题4,采用如下方法
替换成功 黑色背景绿色文字,窗口7秒后自动关闭
不成功 黑色背景红色文字,窗口不会自动关闭

bat文件申请管理员权限的方法百度上有好几种,我随便选择了一种

附上我使用的代码

@echo off
title hosts文件替换
REM ________________________________________________________________
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo 请求管理员权限...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd %~dp0
echo %cd%REM ________________________________________________________________
echo.
echo.
SET SourceFile=%cd%\hosts
SET GenFile=C:\Windows\System32\drivers\etc\hosts
if exist %SourceFile% (echo.echo.color 0Aecho hosts文件存在-备份-更新move %GenFile% %GenFile%.oldcopy %SourceFile% %GenFile%popdecho 更新完成>nul TIMEOUT /T 7
) else (color 0Cecho.echo.echo hosts文件不存在pause>nul
)
echo.
echo.

UNC路径的问题,关键部分代码如下
pushd %~dp0 映射为网络驱动器
popd 释放映射

cd /d %~dp0
echo %cd%pushd %~dp0
echo %cd%
popd
pause

CSDN博主「故三殇」的文档我参考了部分,感觉以后一定还会用到,因此转载了过来

CSDN博主「故三殇」的原创文章
原文链接:https://blog.csdn.net/qq_39720249/article/details/85067931

通过复制方法创建文件或目录

@echo off
echo result.jtl文件判断
SET SourceFile=G:\Jmeter\apache-jmeter-5.0\report\backup\result.jtl
SET GenFile=G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtlif not exist %GenFile% (rem 复制文件result.jtlcopy %SourceFile% %GenFile%echo %GenFile% 文件不存在,已创建该文件!) else (echo %GenFile% 文件已存在,无需创建!)

复制目录(包括空目录):

@echo off
echo OutReport目录判断
SET SourceFolder=G:\Jmeter\apache-jmeter-5.0\report\backup\OutReport
SET GenFolder=G:\Jmeter\apache-jmeter-5.0\report\OutReport\if not exist %GenFolder% (rem 复制目录G:\Jmeter\apache-jmeter-5.0\report\backup\OutReport到G:\Jmeter\apache-jmeter-5.0\report路径下Xcopy %SourceFolder% %GenFolder%  /s/e/h/iecho %GenFolder%目录不存在,已创建该目录!) else (rem 目录G:\Jmeter\apache-jmeter-5.0\report\OutReport已存在,无需创建echo %GenFolder%目录已存在,无需创建!)

复制文件和目录(包括空)

@echo off
echo result.jtl文件判断
SET SourceFile=G:\Jmeter\apache-jmeter-5.0\report\backup\result.jtl
SET GenFile=G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtlif not exist %GenFile% (rem 复制文件result.jtlcopy %SourceFile% %GenFile%echo %GenFile% 文件不存在,已创建该文件!) else (echo %GenFile% 文件已存在,无需创建!)echo OutReport目录判断
SET SourceFolder=G:\Jmeter\apache-jmeter-5.0\report\backup\OutReport
SET GenFolder=G:\Jmeter\apache-jmeter-5.0\report\OutReport\if not exist %GenFolder% (rem 复制目录G:\Jmeter\apache-jmeter-5.0\report\backup\OutReport到G:\Jmeter\apache-jmeter-5.0\report路径下Xcopy %SourceFolder% %GenFolder%  /s/e/h/iecho %GenFolder%目录不存在,已创建该目录!) else (rem 目录G:\Jmeter\apache-jmeter-5.0\report\OutReport已存在,无需创建echo %GenFolder%目录已存在,无需创建!)

通过新建方法创建文件和目录

新建文件

@echo off
echo result.jtl文件判断
SET GenFile=G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtlif not exist %GenFile% (rem 创建空文件G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtlrem 如果需要添加内容,少量的,可以用内容把“nul”替换掉,比如:type 这是文件内容>%GenFile%;多的话则使用复制方法type nul>%GenFile%echo %GenFile%文件不存在,已创建该文件!) else (rem 文件G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtl已存在,无需创建echo %GenFile%文件已存在,无需创建!)

新建空目录

@echo off
echo OutReport目录判断
SET GenFolder=G:\Jmeter\apache-jmeter-5.0\report\OutReportif not exist %GenFolder% (rem 创建空目录G:\Jmeter\apache-jmeter-5.0\report\OutReportrem 创建非空目录,使用复制方法echo %GenFolder%目录不存在,已创建该目录!md %GenFolder%) else (rem 目录G:\Jmeter\apache-jmeter-5.0\report\OutReport已存在,无需创建echo 目录%GenFolder%目录已存在,无需创建!)

目录下是否存在.jtl后缀名文件判断

@echo off
echo .jtl后缀名文件判断
SET GenFile="G:\Jmeter\apache-jmeter-5.0\report\jtl"\***.jtlif not exist %GenFile% (rem 创建空文件G:\Jmeter\apache-jmeter-5.0\report\jtl\newfile.jtlrem 如果需要添加内容,少量的,可以用内容把“nul”替换掉,比如:type 这是文件内容>文件路径\新文件名;多的话则使用复制方法type nul>G:\Jmeter\apache-jmeter-5.0\report\jtl\newfile.jtlecho %GenFile%文件不存在,已创建该文件!) else (rem 文件"G:\Jmeter\apache-jmeter-5.0\report\jtl"\***.jtl已存在,无需创建echo %GenFile%文件已存在,无需创建!)

新建文件和目录

@echo off
echo result.jtl文件判断
SET GenFile=G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtlif not exist %GenFile% (rem 创建空文件G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtlrem 如果需要添加内容,少量的,可以用内容把“nul”替换掉,比如:type 这是文件内容>%GenFile%;多的话则使用复制方法type nul>%GenFile%echo %GenFile%文件不存在,已创建该文件!) else (rem 文件G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtl已存在,无需创建echo %GenFile%文件已存在,无需创建!)echo OutReport目录判断
SET GenFolder=G:\Jmeter\apache-jmeter-5.0\report\OutReportif not exist %GenFolder% (rem 创建空目录G:\Jmeter\apache-jmeter-5.0\report\OutReportrem 创建非空目录,使用复制方法echo %GenFolder%目录不存在,已创建该目录!md %GenFolder%) else (rem 目录G:\Jmeter\apache-jmeter-5.0\report\OutReport已存在,无需创建echo 目录%GenFolder%目录已存在,无需创建!)echo 所有.jtl后缀名文件判断
SET GenFile="G:\Jmeter\apache-jmeter-5.0\report\jtl"\***.jtlif not exist %GenFile% (rem 创建空文件G:\Jmeter\apache-jmeter-5.0\report\jtl\newfile.jtlrem 如果需要添加内容,少量的,可以用内容把“nul”替换掉,比如:type 这是文件内容>文件路径\新文件名;多的话则使用复制方法type nul>G:\Jmeter\apache-jmeter-5.0\report\jtl\newfile.jtlecho %GenFile%文件不存在,已创建该文件!) else (rem 文件"G:\Jmeter\apache-jmeter-5.0\report\jtl"\***.jtl已存在,无需创建echo %GenFile%文件已存在,无需创建!)

转载于:https://www.cnblogs.com/guyk/p/11588327.html

Batch批量替换hosts相关推荐

  1. Spring batch批量处理框架最佳实践

    spring batch精选,一文吃透spring batch批量处理框架 前言碎语 批处理是企业级业务系统不可或缺的一部分,spring batch是一个轻量级的综合性批处理框架,可用于开发企业信息 ...

  2. 批量替换_批量替换图框

    批量替换图框的功能想必每个工程师都会要用到,偶然一次在论坛上看贴的时候发现一个网页分享的工具,非常不错,现在我也分享给朋友们. 使用的时候注意事项及步骤: Solidworks最好不要打开任何文件. ...

  3. 简单介绍Idea使用正则表达式批量替换字符串的方法

    这篇文章给大家介绍了Idea使用正则表达式批量替换字符串的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧 由于一开始的粗放扩张,公司项目代码里,遗留有很多 ...

  4. php批量修改图片地址,织梦网站内容页图片绝对路径设置及批量替换方法

    今天深山就跟大家分享一下织梦如何设置绝对路径,分为三种类型说:栏目和文章的觉路径.新上传图片绝对路径.已经上传图片相对路径替换绝对路径,缩略图绝对路径替换请看<织梦缩略图相对路径批量替换绝对路径 ...

  5. linux sed 批量替换多个文件中的字符串

    原文: http://blog.csdn.net/kauu/article/details/1757325 一.linux sed 批量替换多个文件中的字符串 sed -i "s/oldst ...

  6. 批量替换sqlserver数据库TEXT字段类型的数据

    在申请百度推广账户的时候,百度需要审查旅游网站不能含有机票两个字,所以需要在旅游线路中批量替换掉机票2个字. 替换示例如下:   --创建数据测试环境 create table #tb(L_TEXT ...

  7. Linux下批量替换文件内容方法

    1:查找 find . -type f -name "*.html"|xargs grep 'yourstring' 2:查找并替换 find -name '要查找的文件名' | ...

  8. 批量替换文本中字符代码-python3

    Excel的批量替换的痛点在于只能每次单次替换一个,利用脚本可以批量同时替换多个字符.首先需要建立replace_new.txt写入你所需要替换的文本,如: "origin    new A ...

  9. shell之for和if实现批量替换多目录下的文件

    问题背景: 生产环境的项目图片文件夹众多,每个项目都会有一个图片文件夹,现在要批量替换每个文件夹下的一张模板图片 如图,我们要替换每一个文件夹下的01.jpg shell 脚本 #/bin/bash ...

最新文章

  1. 性能测试应用领域分析
  2. 在IntelliJ IDEA中使用git
  3. 探索MySql.Data.dll
  4. GDCM:解析XPATH文件的测试程序
  5. mysql子查询存到另一张表_MySQL多表查询与子查询
  6. 报错 classes 拒绝访问_3种方式“移除”快速访问;为什么移除?你懂的...
  7. 21种代码的“坏味道”
  8. 浅谈 make 工具
  9. 华为交换机设置端口镜像捕获数据包
  10. 【python初级】 关于time.sleep睡眠时间
  11. React之lazy与suspense
  12. 小米手机TCP连接一些奇怪现象
  13. 【航线运输驾驶员理论考试】操作程序
  14. 谈悲观、执著、超脱——周国平
  15. Blog 【如何搭建自己的个人技术博客网站】
  16. java 字符串中取消换行或添加换行
  17. 【MFC学习笔记】常见问题解答
  18. 华清远见百度网盘实训笔记
  19. oracle sql优化的几条法则
  20. webpack插件filemanager-webpack-plugin(管理打包后的文件路径)

热门文章

  1. qtp如何连接mysql_QTP连接MYSQL数据库方法
  2. linux下RocketMQ的安装和API调用中出现的问题的解决 MARK一下
  3. Android之shape属性简介和使用
  4. 关于inodes占用100%的问题及解决方法续集如何解决clientmqueue目录文件太多
  5. YII2.0之博客实战
  6. Xcode调试项目时取消弹出框提示授权
  7. 断言(Assertion)需要注意的一个地方
  8. 生产环境下的负载均衡配置
  9. 继承(四):new方法都与基类中方法无关
  10. 剑破冰山—Oracle开发艺术 内容简介