[20171225]变态的windows批处理4.txt
[20171225]变态的windows批处理4.txt
--//昨天学习windows 批处理的echo &.使用它可以实现类似回车换行的功能.例子:
1.echo &.
R:\>echo 1111 & echo 2222
1111
2222
--//但是如果写成如下:
R:\>echo 1111 & echo 2222 > aa.txt
1111
R:\>cat aa.txt
2222
--//你可以发现1111,显示输出,而2222写入文件aa.txt,改写成管道看看.
R:\>echo 1111 &echo 2222 | cat
1111
2222
--//OK.实际上这个是假象,第1行走屏幕,第2行走管道,看下面的测试就明白了.如果要写到文件实际上要加括号,这个跟linux有一个相似.
R:\>(echo 1111 &echo 2222 ) > aa.txt
R:\>cat aa.txt
1111
2222
--//这个倒是正常的情况.
2.利用这个特性可以通过管道传输命令给sqlplus.
R:\>echo set timing off head off; &echo select sysdate from dual;
set timing off head off;
select sysdate from dual;
R:\>echo set timing off head off; &echo select sysdate from dual; | sqlplus -s scott/book@78
set timing off head off;
SYSDATE
-------------------
2017-12-25 10:06:33
--//晕!!明显set timing off head off;这行没有经过管道输出,而是直接输出到屏幕.因为如果输入管道,显示的应该是没有sysdate字段名.
--//仔细看前面的例子才发现实际上echo 1111 &echo 2222 | cat 输出1111走屏幕,而输出2222管道,看上去显示是正常的.
--//也就是要2行都通过管道必须使用括号.修改如下.
R:\>(echo set timing off head off; &echo select sysdate from dual; ) | sqlplus -s scott/book@78
2017-12-25 10:08:59
--//我google发现另外的写法,在&前加入^.
R:\>echo set timing off head off;^&echo select sysdate from dual; | sqlplus -s scott/book@78
2017-12-25 10:11:57
--//确实是Ok了,但是另外的问题来了:
R:\>echo set timing off head off;^&echo select sysdate from dual; | cat
set timing off head off;
select sysdate from dual;
R:\>echo set timing off head off;^&echo select sysdate from dual; > aa.txt
R:\>cat aa.txt
set timing off head off;&echo select sysdate from dual;
--//无法理解windows的批处理,通过管道输出2行.而使用文件接收显示的是set timing off head off;&echo select sysdate from dual;
--//重定向到文件时^实际上转义&.
set timing off head off; &echo select sysdate from dual;
--//而实际上这样执行是不行的.
R:\>cat aa.txt | sqlplus -s scott/book@78
Enter value for echo:
SP2-0546: User requested Interrupt or EOF detected.
--//还是不好理解windows的批处理的玄妙!!在我感觉最佳的方式还是加括号比较好理解一些.
--//实际上如果能很好理解链接http://blog.itpub.net/267265/viewspace-2140599/,通过管道实际上就是单行的批处理.如果能理解这个,上面的测试
--//就能很好理解.
--//但是如果echo里面有括号问题又来了:
R:\>(echo set timing off head off;&echo select (sysdate+1) from dual;) | sqlplus -s scott/book@78
此时不应有 from。
--//也就是)要转义,要转义3次.遇到这种情况不断增加^就是了.
R:\>(echo set timing off head off;&echo select (sysdate+1^^^) from dual;) | sqlplus -s scott/book@78
2017-12-26 11:16:33
--//而前面那种方式就简单了.
R:\>echo set timing off head off;^&echo select (sysdate+1) from dual; | sqlplus -s scott/book@78
2017-12-26 11:17:35
--//在我看来windows批处理真是变态加变态..
[20171225]变态的windows批处理4.txt的更多相关文章
- SQL Server数据库备份:通过Windows批处理命令执行
通过Windows批处理命令执行SQL Server数据库备份 建立mybackup.bat ,输入以下内容直接运行该脚本,即可开始自动备份数据库也可把该脚本加入windows任务计划里执行. --- ...
- cmd下windows批处理,获取当前系统时间,生成日志文件名
示例: rdGetRTData_log%date:~0,4%%date:~5,2%%date:~8,2%.txt 生成格式: rdGetRTData_log20151103.txt 编写Windows ...
- WINDOWS批处理命令使用大全
来源:http://www.942dn.com就是爱电脑网 WINDOWS批处理命令使用大全 批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母.它的构成没有固定格式, ...
- 常用的Windows批处理
切换执行路径 如果不换盘的话:cd xxx换盘:cd /d xxx 获取当前日期 编写Windows批处理时经常会需要使用到日期和时间作为文件名,所以是非常重要的. 如何获取日期呢?格式: ...
- [转帖]Windows批处理(cmd/bat)常用命令小结
Windows批处理(cmd/bat)常用命令小结 非常值得学习的文档 先放这里 有时间做实验, 转载自:“趣IT”微信公共号 前言 批处理文件(batch file)包含一系列 DOS命令,通常用于 ...
- Windows 批处理大全(附各种实例)
Windows 批处理大全(附各种实例) 2009年07月19日 21:31:00 阅读数:2552 批处理文件是无格式的文本文件,它包含一条或多条命令.它的文件扩展名为 .bat 或 .cmd.在命 ...
- Windows 批处理(cmd/bat)常用命令教程
Windows批处理(cmd/bat)常用命令教程 简单详细,建议收藏 常见问题: 1.如果你自己编写的.bat文件,双击打开,出现闪退 2.批处理.bat 文件中输出中文乱码 解决方法在文章末尾! ...
- Windows批处理(cmd/bat)常用命令
Windows批处理(cmd/bat)常用命令 一.总结 一句话总结: 1.批量处理图片的方式? PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理图片的脚本: 2.大量的重复的操作 ...
- Windows 批处理入门
Windows 批处理入门 目录 本教程概述 用到的工具 标签 简介 1.命令简介 2.符号简介 3.语句结构 4.实例讲解 本教程概述 本课我们学习windows批处理 用到的工具 cmd.ex ...
随机推荐
- 如何开始DDD(续)
上一篇针对用户注册案例简单介绍了如何使用 DDD,接下来我将继续针对这个例子做一下补充.先将User模型丰富起来,因为目前看上去他和贫血模型还没有啥大的区别. 首先还是由领域专家来说明业务,他提出了用 ...
- java中打印实心菱形以及空心菱形的方法
一.打印效果 二.实现代码汇总 为了方便初学者对代码的理解,建议熟练t1到t5为各种三角的打印,然后再进行菱形的打印实现. package circulationDemo; import java.u ...
- Spring Boot + Spring Cloud 构建微服务系统(九):配置中心(Spring Cloud Config)
技术背景 如今微服务架构盛行,在分布式系统中,项目日益庞大,子项目日益增多,每个项目都散落着各种配置文件,且随着服务的增加而不断增多.此时,往往某一个基础服务信息变更,都会导致一系列服务的更新和重启, ...
- C语言第八讲,指针*
C语言第八讲,指针* 一丶简单理解指针 说到指针,很多人都说是C语言的重点. 也说是C语言的难点. 其实指针并不是难.而是很多人搞不清地址 和 值.以及指针类型. 为什么这样说. 假设有两个变量,如下 ...
- 使用Scratch进行少儿编程
在上一篇<初识少儿编程>曾提到过Scratch的脚本标签内包含10大模块,本文将围绕这10大模块展开,分为两部分:积木和编程概念,结合<动手玩转Scratch2.0编程―STEAM创 ...
- 关于wepack的使用总结以及优化探讨
一.前言 不知不觉,webpack版本已经到4.0了.使用它也有很长一段时间了,回头看看,自己木有总结webpack方面的知识,现在有空起个头,主要是总结自己常用的配置和一下优化的探讨,以后有啥想法也 ...
- WIN7 环境下搭建 PHP7(64 位)操作步骤
WIN7 环境下搭建 PHP7(64 位)操作步骤 一.安装与配置 Apache 1.下载 Apache下载地址:https://www.apachelounge.com/download/ 2.安装 ...
- Hyperledger Fabric密码模块系列之BCCSP(二)
上一篇简单介绍了bccsp包下面的目录结构,这一篇本来想讲sw的,忽然感觉少点什么,对哈,得先将下bccsp这个接口,sw只是个实现啊.
- 你不知道的Linux(持续更新中)
1.关于GNU.Linux.GNU/Linux三者的关系 GNU 项目创始于一九八四年,旨在开发一个类似 Unix ,且为自由软件的完整的操作系统: GNU 系统.(也可把GNU看成一个自由软件工程) ...
- jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
指定元素中包含 id 属性的, 如: $("span[id]") 代码如下: <span id="span1" name="S1"&g ...