bat 中的特殊符号输出问题
系统关键字(感叹号!)冲突
bat读取文本时,空行的判断
- 不包括空行的判断,在使用for循环读取的时候,可以使用 if defined var判断
- 包括空格的判断,使用set var=!var: =!把空格替换掉,然后使用 if "!var!"==""进行判断
@echo off
rem 循环查找.temp格式的模板文件并复制新文件
for /r %%a in (*.temp) do (
set f=%%a
setlocal enabledelayedexpansion
set nf=!f:.temp=!
rem 替换前,删除旧文件
if exist !nf! (
del !nf!
)
endlocal
rem 开始逐行替换旧文件
for /f "eol== delims=" %%i in ('findstr /i /n .* %%a') do (
set "var=%%i"
rem 后面要用到变量,因此此处启用延迟变量
setlocal enabledelayedexpansion
set var=!var:*:=!
rem 获取需要生成的目标文件名
set nf=!f:.temp=!
set tmp=!var: =!
rem 排除无空格空行
if defined var (
rem 排除包含空格的空行
if /i not "!tmp!"=="" (
(echo !var!)>>!nf!
) else (
echo.!var!>>!nf!
)
) else (
echo.>>!nf!
)
rem 此处禁用延迟变量,以使下一次循环时,能够正常读取字符
endlocal
)
setlocal enabledelayedexpansion
set nf=!f:.temp=!
echo 配置文件!nf!设置成功
start !nf!
pause
endlocal
)
pause
exit
用于测试的模板文件,命名为test.txt.temp
<configuration>
<!---->
<appSettings>
<add key="FILE_SERVICE_URI" value="http://$ip$:8080/bingo.dataone/"/>
<add key="DATA_SERVICE_URI" value="http://$ip$:8080/bingo.dataone/dataservice.dsr"/>
<add key="IS_USE_PERMISSION" value="true"/>
<!--下面一行为无空格的空行--> </appSettings>
<!--下面一行为有空格的空行--> </configuration>
bat 中的特殊符号输出问题的更多相关文章
- Bat 中特殊符号
批处理.Bat 中特殊符号的实际作用,Windows 批处理中特殊符号的作用: @\\隐藏命令的回显. ~\\在for中表示使用增强的变量扩展:在set中表示使用扩展环境变量指定位置的字符串:在set ...
- 【转】【bat】Bat 中特殊符号
批处理.Bat 中特殊符号的实际作用,Windows 批处理中特殊符号的作用: @\\隐藏命令的回显. ~\\在for中表示使用增强的变量扩展:在set中表示使用扩展环境变量指定位置的字符串:在set ...
- [转]bat中的特殊字符,以及需要在bat中当做字符如何处理
bat中的特殊字符,以及需要在bat中当做字符如何处理 批处理.Bat 中特殊符号的实际作用,Windows 批处理中特殊符号的作用: @ \\隐藏命令的回显. ~ \\在for中表示使用增强的变量扩 ...
- bat中的特殊字符,以及需要在bat中当做字符如何处理
bat中的特殊字符,以及需要在bat中当做字符如何处理 (2014-02-27 21:16:55) 转载▼ 标签: bat 特殊字符 分类: develop bat中的特殊字符,以及需要在bat中当做 ...
- 关于C语言中的强符号、弱符号、强引用和弱引用的一些陋见,欢迎指正
首先我表示很悲剧,在看<程序员的自我修养--链接.装载与库>之前我竟不知道C有强符号.弱符号.强引用和弱引用.在看到3.5.5节弱符号和强符号时,我感觉有些困惑,所以写下此篇,希望能和同样 ...
- 浅谈C语言中的强符号、弱符号、强引用和弱引用
摘自http://www.jb51.net/article/56924.htm 浅谈C语言中的强符号.弱符号.强引用和弱引用 投稿:hebedich 字体:[增加 减小] 类型:转载 时间:2014- ...
- 深入理解计算机系统(2.5)------C语言中的有符号数和无符号数以及扩展和截断数字
上一篇博客我们讲解了计算机中整数的表示,包括无符号编码和补码编码,以及它们之间的互相转换,个人觉得那是非常重要的知识要点.这篇博客我们将介绍C语言中的有符号数和无符号数以及扩展和截断数字. 1.C语言 ...
- Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器
Android For JNI(二)--C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器 当我们把Hello World写完之后,我们就可以迈入C的大门了,今天就来讲讲基本的一些数据类型 ...
- linux中如何通过echo输出!(叹号)? -bash: !": event not found
需求描述: 今天在做通过echo结合passwd给用户改密码的过程中,出现无法修改的错误. 错误如下: [root@testvm ~]# useradd mytest [root@testvm ~]# ...
随机推荐
- 监听textarea数值变化
监听textarea数值变化 $('#id').bind('input propertychange', function(){ //TODO });
- AngularJS所有版本下载地址
AngularJS官网本身采用AngularJS库构建,页面中的AngularJS库通过Google的CDN(内容分发网络)引入,所以国内访问会有问题. 大家可以从下面地址获取AngularJS所以版 ...
- 【转载】Python实现图书馆预约功能
注释: 1,原博主是:http://blog.csdn.net/cq361106306/article/details/42644001# 2,学校是我现在的学校,我最近也在研究这个,所以转了. 3, ...
- js创建弹框(提示框,待确认框)
;;} html,body{text-size-adjust:none;-webkit-text-size-adjust:none;-webkit-user-select:none;} a{color ...
- EditPlus 3.7激活码注册码
EditPlus3.7激活教程以及EditPlus3.7激活码使用方法 EditPlus是一款功能齐全的文字编辑器,搭配其他的插件还可以实现很多的功能,还可以编辑和编译Java,调试程序等,主要用来打 ...
- flash jquery 调用摄像头 vue chrome49浏览器
flash jquery 调用摄像头 vue chrome49浏览器 这个摄像头,不能一个页面加载多个,只能一个页面显示一次,所以 调用的时候,记得加v-if 把组件销毁,然后从新加载新的 <! ...
- 2018.4.10 Ubuntu cat命令解答、用法
cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的: cat主要有三大功能: 1.一次显示整个文件. $ cat filename 2.从键盘创建一个文件. $ cat > ...
- leetcode 179. Largest Number 、剑指offer33 把数组排成最小的数
这两个题几乎是一样的,只是leetcode的题是排成最大的数,剑指的题是排成最小的 179. Largest Number a.需要将数组的数转换成字符串,然后再根据大小排序,这里使用to_strin ...
- 中英文字符串截取函数msubstr
Thinkphp内置了一个可以媲美smarty的模板引擎,给我们带来了很大的方便.调用函数也一样,可以和smarty一样调用自己需要的函数,而官方也内置了一些常用的函数供大家调用. 比如今天我们说的截 ...
- JQuery EasyUI学习记录(一)
1.主页设计(JQuery EasyUI插件) 下载easyUI开发包: 将easyUI资源文件导入页面中: <link rel="stylesheet" type=&quo ...