Batch批量替换hosts
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相关推荐
- Spring batch批量处理框架最佳实践
spring batch精选,一文吃透spring batch批量处理框架 前言碎语 批处理是企业级业务系统不可或缺的一部分,spring batch是一个轻量级的综合性批处理框架,可用于开发企业信息 ...
- 批量替换_批量替换图框
批量替换图框的功能想必每个工程师都会要用到,偶然一次在论坛上看贴的时候发现一个网页分享的工具,非常不错,现在我也分享给朋友们. 使用的时候注意事项及步骤: Solidworks最好不要打开任何文件. ...
- 简单介绍Idea使用正则表达式批量替换字符串的方法
这篇文章给大家介绍了Idea使用正则表达式批量替换字符串的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧 由于一开始的粗放扩张,公司项目代码里,遗留有很多 ...
- php批量修改图片地址,织梦网站内容页图片绝对路径设置及批量替换方法
今天深山就跟大家分享一下织梦如何设置绝对路径,分为三种类型说:栏目和文章的觉路径.新上传图片绝对路径.已经上传图片相对路径替换绝对路径,缩略图绝对路径替换请看<织梦缩略图相对路径批量替换绝对路径 ...
- linux sed 批量替换多个文件中的字符串
原文: http://blog.csdn.net/kauu/article/details/1757325 一.linux sed 批量替换多个文件中的字符串 sed -i "s/oldst ...
- 批量替换sqlserver数据库TEXT字段类型的数据
在申请百度推广账户的时候,百度需要审查旅游网站不能含有机票两个字,所以需要在旅游线路中批量替换掉机票2个字. 替换示例如下: --创建数据测试环境 create table #tb(L_TEXT ...
- Linux下批量替换文件内容方法
1:查找 find . -type f -name "*.html"|xargs grep 'yourstring' 2:查找并替换 find -name '要查找的文件名' | ...
- 批量替换文本中字符代码-python3
Excel的批量替换的痛点在于只能每次单次替换一个,利用脚本可以批量同时替换多个字符.首先需要建立replace_new.txt写入你所需要替换的文本,如: "origin new A ...
- shell之for和if实现批量替换多目录下的文件
问题背景: 生产环境的项目图片文件夹众多,每个项目都会有一个图片文件夹,现在要批量替换每个文件夹下的一张模板图片 如图,我们要替换每一个文件夹下的01.jpg shell 脚本 #/bin/bash ...
最新文章
- 性能测试应用领域分析
- 在IntelliJ IDEA中使用git
- 探索MySql.Data.dll
- GDCM:解析XPATH文件的测试程序
- mysql子查询存到另一张表_MySQL多表查询与子查询
- 报错 classes 拒绝访问_3种方式“移除”快速访问;为什么移除?你懂的...
- 21种代码的“坏味道”
- 浅谈 make 工具
- 华为交换机设置端口镜像捕获数据包
- 【python初级】 关于time.sleep睡眠时间
- React之lazy与suspense
- 小米手机TCP连接一些奇怪现象
- 【航线运输驾驶员理论考试】操作程序
- 谈悲观、执著、超脱——周国平
- Blog 【如何搭建自己的个人技术博客网站】
- java 字符串中取消换行或添加换行
- 【MFC学习笔记】常见问题解答
- 华清远见百度网盘实训笔记
- oracle sql优化的几条法则
- webpack插件filemanager-webpack-plugin(管理打包后的文件路径)