常用的批处理实用技巧

编写批处理代码一年多来,本人积累了一些实用的批处理代码编写技巧,现发出来大家一起分享。若能善用这些代码,将会大大简化各位的编码工作,并会一定程度上提升代码的执行效率。
1、不显示代码执行期间的各种提示信息

  很多时候,为了使得屏幕上不出现无关的信息,我们需要屏蔽掉命令执行过程中产生的一些提示,有时候是屏蔽掉出错信息,有时候是为了屏蔽成功执行命令的信息,有时候两者都需要屏蔽,那么,我们可以把各种提示信息重定向到空设备中去,具体的代码是:
  ① 如果要屏蔽成功执行命令的信息,请在语句的最后加上代码 >nul。比如 copy a.txt d:\test>nul
  ② 如果要屏蔽出错信息,请在语句最后加上代码 2>nul,需要注意的是,数字2前必须带空格。比如,md test 2>nul,如果当前目录已经存在文件夹test,那么,执行这条语句将不会出现错误提示;
  ③ 如果要同时屏蔽正确执行代码后产生的提示和出错时的信息,请在语句最后加上代码 >nul 2>nul。比如,copy a.txt d:\test>nul 2>nul 这条语句,无论命令是否成功执行,都不会在屏幕上出现任何提示;
  善用 nul 2>nul 句式,可以很方便地实现很多目的,比如创建文件夹的时候,无需先用if语句来检测是否已经存在某个目录,直接 md test 2>nul 即可,可以提高代码的执行效率。

  2、cd.>test.txt

  很多人第一次遇到这样的语句时,都会大惑不解:cd不是跳转目录的命令吗?怎么会有创建0字节文件的功能呢?曾经有段时间,我是用echo.>test.txt来创建空文件的,只是这个空文件虽然没有任何内容,但是,大小不是0字节,在要求苛刻的情况下,并不能很好地完成任务。实际上,从理论上来说,创建0字节文件的语句有无限多种,只要明白其中的奥妙,就可以随心所欲地构造出来,只是cd.>test.txt是最简洁的方法,符合我"解决问题简洁化"的一贯主张。构造0字节文件的奥妙在于:只要没有任何内容重定向到文件中去,0字节文件就会随着命令的执行而产生。比如dir 2>test.txt、arp >text.txt、abc 4>test.txt……,只要符合"任意内容+空格+2以上10以下的数字+>test.txt"的格式即可。需要注意的是,千万不要被屏幕上的各种出错信息所蒙蔽,我们的最终目的是产生0字节的文件,至于错误提示完全可以用 2>nul 去屏蔽。更详细的讨论请参考本人在CN-DOS发过的这篇帖子:可构造0字节文本文件的几条命令 。

  3、del /a /f *.txt

  我们知道,单独的del命令并不能删除带隐藏或只读属性的文件,于是,很多人自然而然地想到先用 attrib 命令来先给将要删除的文件去掉各种属性。其实,操作过程大可不必如此繁琐,只须给del加上 /a /f 的参数就可以了。

  4、echo. echo; echo/和echo\

  在很多人的心目中,产生换行符的方法只有echo.一种,实际上,到目前为止,已经有人找出了标题所列的四种方法,有兴趣不妨换着用用,也可以在菜鸟面前炫耀一番^_^

  5、echo.%str% 和 echo %str%

  知道 echo.hello! 和 echo hello! 有何差别吗?就具体字符串的输出而言,它们在效果上是完全等同的;但是,当 hello! 用变量来替换之后,在特定情况下结果将会截然不同!试试令变量 str 为空,再在批处理文件中分别执行这两条语句,看看它们的提示吧。结果出来了吗?总结一下:当变量 str 的值为空时,echo.%str% 输出了一个空行,而 echo %str% 则返回 echo 的当前状态。当用 for 语句读取带空行的文本,并用 echo 语句来输出时,echo.%str% 语句无疑是上上之选。另外,第4条的技巧在这里同样适用。

  6、拼接多行字符串为一行

  如果要把某个文本中的多行字符串拼接为一行,按照一般的思路,是在for语句中,先 set str=%%i,然后,下一步是 set str=%%i!str! ,从而实现后一句与前一句的拼接。实际上,这两步只用一条 set /p str=%%i<nul 就可以实现。简单的演示代码如下:


代码如下:

@echo off
for /f "delims=" %%i in (test.txt) do set /p str=%%i<nul
echo.
pause>nul

(0)

相关推荐

  • 批处理文件 (.bat) 的几个技巧分享

    从中可以了解系统服务的添加与删除,以及文件复制等基本命令和方法.此外,利用批处理文件,还可以更方便地来扩展快捷操作. 例如,要打开一个目录,则代码形式为: 复制代码 代码如下: start D:\Zend 即打开 D 盘根目录下的 Zend 文件夹. 要访问一个网址,则代码形式为: 复制代码 代码如下: explorer http://localhost 即浏览本地服务器的 Web 服务. 结合 ZendCore,Apache+MySQL+PHP 环境套件中提到的三个批处理文件,我们可以在新的

  • 写批处理必备的一些命令参数使用技巧

    首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件. 其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令.当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的.批处理的程序语

  • 批处理的高级运用技巧

    批处理的高级运用1 一.简单批处理内部命令  批处理的高级运用!!小技巧哦!!!  批处理大家都很熟悉吧!  下面介绍批处理的几个知识点:  1:巧用FC命令做查木马工具:  首先建立批处理文件atm.bat:写入代码:@echo off  dir c:\windows\system32\*.exe >c:??.txt  dir c:\windows\system32\*.dll >c:??.txt  2:建立批处理文件WLTS.bat 写入代码:@echo off  dir c:\windo

  • BAT文件语法和技巧(bat文件的编写及使用)

    BAT文件语法和技巧(bat文件的编写及使用)(转载一) 比较有用的东比较有用的东西  首先,批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件.    其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令.

  • 关于批处理中FOR语句的使用说明与学习技巧

    批处理 bat中的for命令的作用,非常的不错,可以节省很多效率,它可以读取文章的没一行,循环执行ping命令,老探索端口,学习批处理如果不学习for将是个遗憾,希望大家多看看for 命令的实际应用的例子,如果只看简单的基础的使用方法,而缺少实际应用的话,再多的基础也不成,一定先看实例再看基础,带着问题去看基础,相信很快大家就可以上手了,本站有不少这样的资源,大家可以搜下下面我就把for命令的基本参数整理下,大家在学习的时候可以在dos下打for /?来查看帮助,大家都是这样过来的 For 对一

  • 常用的批处理实用技巧

    编写批处理代码一年多来,本人积累了一些实用的批处理代码编写技巧,现发出来大家一起分享.若能善用这些代码,将会大大简化各位的编码工作,并会一定程度上提升代码的执行效率.1.不显示代码执行期间的各种提示信息 很多时候,为了使得屏幕上不出现无关的信息,我们需要屏蔽掉命令执行过程中产生的一些提示,有时候是屏蔽掉出错信息,有时候是为了屏蔽成功执行命令的信息,有时候两者都需要屏蔽,那么,我们可以把各种提示信息重定向到空设备中去,具体的代码是: ① 如果要屏蔽成功执行命令的信息,请在语句的最后加上代码 >nu

  • MYSQL常用命令与实用技巧

    一.连接MYSQL. 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql> 2.例2:连接到远程主机上的MYSQL.假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123.则键

  • Vue项目中常用的实用技巧汇总

    目录 前言 1. 使用 $attrs 和 $listeners 进行多层级的数据和事件传递 2. 实现数据的双向绑定,方便维护数据 使用 .sync 实现 Prop 的"双向绑定" 使用 model 选项 3. 使用 Mixins 4. 使用动态组件去懒加载组件 5. 在组件作用域内的 CSS 中使用 ::v-deep  修改组件样式 6. 使用装饰器优化代码 7. 利用 require.context 去获取项目目录信息 总结 引用 前言 在 Vue 项目开发中,很容易产生一些问题,

  • 提高JavaScript执行效率的23个实用技巧

    本文向大家分享23种JavaScript提高执行效率的小技巧.最佳实践等非常实用的内容.当然JavaScript的实用技巧不止这些,还有很多即好玩又能提高程序运行效率的技巧,以后我们会继续分享给大家. 文中所提供的代码片段都已经过最新版的Chrome 30测试,该浏览器使用V8 JavaScript引擎(V8 3.20.17.15). 1.使用逻辑符号&&或者||进行条件判断 var foo = 10; foo == 10 && doSomething(); // 如果 f

  • 全面介绍javascript实用技巧及单竖杠

    JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它.昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序.很多新手开发者被各种强大的 JavaScript 框架吸引进来,但他们却忽略了框架身后浩如星海的 JavaScript 实用技巧.本文将为你全面的介绍其中的知识点. 一.js整数的操作 使用|0和~~可以将浮点转成整型且效率方面要比同类的parseInt,Math.round 要快,在处理像素及动画位移等

  • ASP.NET的实用技巧详细介绍

    关于ASP.NET的实用技巧,其实我们已经接触到很多了.下面为大家总结一下,供大家参考. 1.跟踪页面执行 设置断点是页面调试过程中的常用手段,除此之外,还可以通过查看页面的跟踪信息进行错误排查以及性能优化.ASP.NET中启用页面跟踪非常方便,只需在Page指令中加入Trace="True"属性即可: <%@ Page Language="C#" Trace="true"> 跟踪信息可以分为两类: a.页面执行详细情况 其中主要包括

  • C#之WinForm WebBrowser实用技巧汇总

    本文实例汇总了C#中WinForm WebBrowser常见的实用技巧,对于C#程序开发来说有不错的借鉴价值.分别叙述如下: 方法1:获取状态栏信息 void webBrowser1_StatusTextChanged(object sender, EventArgs e) { label1.Text = webBrowser1.StatusText; } 方法2:页面跳转后改变地址栏地址 //在Navigated事件处理函数中改变地址栏地址是最恰当的: private void webBrow

  • 初学Python实用技巧两则

    本文记录了初学Python常用的两则实用技巧,分享给大家供大家参考之用.具体如下: 1.可变参数 示例代码如下: >>> def powersum(power, *args): ... '''''Return the sum of each argument raised to specified power.''' ... total = 0 ... for i in args: ... total += pow(i, power) ... return total ... >&

  • 13个Pandas实用技巧,助你提高开发效率

    原作:风控猎人 整理:数据管道 归纳整理了一些工作中常用到的pandas使用技巧,方便更高效地实现数据分析. 1.计算变量缺失率 df=pd.read_csv('titanic_train.csv') def missing_cal(df): """ df :数据集 return:每个变量的缺失率 """ missing_series = df.isnull().sum()/df.shape[0] missing_df = pd.DataFram

  • 微信小程序开发实用技巧之数据传递和存储

    结合自己在平时的开发中遇到的各种问题,和浏览各种问题的解决方案总结出一些自己在日常开发中常用的技巧和知点,希望各位不吝斧正. 1.短生命周期数据存储 以小程序启动到彻底关闭为周期的的数据建议存储在app.js文件夹中,引用app.js: const app =getApp(); 假设Value是在小程序本次生命周期中经常使用到的一个数据,比如说请求API的Token,动态的令牌等.那么就可以把这个值赋值到全局变量中去.实际上,并不是只有app.js中的globalData是全局变量,可以自己定义

随机推荐