`
icyheart
  • 浏览: 765283 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

非常有用的批处理知识

阅读更多

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

 

分享到:
评论

相关推荐

    bat批处理文件知识汇总

    虽然现在dos用的少了 可是批处理还是很有用的 在一些工程可以用到 希望能帮到一些需要的人们

    系统类批处理大全

    对操作系统进行各种设置的批处理大全,用于制作各种维护工具时比较有用,同时也可学习到批处理和系统优化操作的知识。

    CN-DOS 批处理精华贴(包含2007AIE-7 和 2008A)

    CN-DOS 批处理精华贴(包含2007AIE-7 和 2008A),从这里能学到关于批处理和DOS很多有用的知识

    180个非常有用的电脑知识

    180个非常有用的电脑知识 例如Windows XP系统内置的AT命令 体验Windows XP系统内置的AT命令 AT命令是Windows XP中内置的命令,它也可以媲美Windows中的“计划任务”,而且在计划的安排、任务的管理、工作事务的...

    数据库系统基础知识.pdf

    Visual FoxPuo 程序设计基础 第1章 数据库系统基础知识 数据库基础知识 1.1 数据模型 1.2 数据库系统 1.3 关系数据库 1.4 数据库系统的体系结构与开发工具 1.5 1.1 数据库基础知识 通常,把用计算机对数据进行处理的...

    matlab-tutorial

    MATLAB 是 MathWorks 开发的一种编程语言。它最初是一种矩阵编程语言,其中线性...如果您使用任何其他高级编程语言(如 C、C++ 或 Java)进行过编程,那么这将非常有用。非常有益,学习 MATLAB 对您来说将是一种乐趣。

    C_C++控制台界面编程 V3

    7) 将批处理bat转换为exe程序 18 8) 在Visual Studio 2005中设置控制台程序的图标 18 9) 重定向控制台程序的输出 19 第二部分 控制台界面编程详解 20 1) 概述 20 2) 控制台文本窗口编程的一般控制步骤 21 3) 控制台...

    Direct Oracle Access v4.1.3 bcb6

    高性能 ——Oracle的性能特性对于在线业务和批处理程序非常有用。通过Direct Oracle Access,能够直接访问Oracle接口,从而使得标准的数据库访问函数实现性能最优。而该组件集还支持Array Fetching, Array DML, PL/...

    大数据的应用与挑战.doc

    2.2 大数据处理的处理流程和处理模式 处理大数据是基于适当工具,根据一定的标准将对异构数据源提取和集成,再使用适 当的数据分析技术,分析存储数据和提取有用的知识,并把最终结果传递给最终端用户 。...

    welder_old:Appsoma mesos 的节点服务器

    Appsoma 焊机Appsoma Welder 是一个 API 和 UI,用于在 Mesos 或 SGE 下启动批处理作业,旨在支持更多调度程序。 它组织代码、数据集和运行到标准化的项目文件夹中,并在适当的时候管理数据和代码到指定容器的安装。...

    [Objective-c程序设计].杨正洪等.扫描版

    8.1 一些有用的数据类型108 8.1.1 范围的作用108 8.1.2 几何数据类型108 8.2 字符串109 8.2.1 创建字符串109 8.2.2 类方法109 8.2.3 关于大小110 8.2.4 比较的策略110 8.2.5 不区分大小写的比较112 8.2.6 字符串内...

    Jhead (Exif 信息批量命令行编辑工具,win命令行,含源代码)一个直接用命令查看修改删除图片属性Exif信息的文件

    这在编写批处理脚本时非常有用 -cmdcommand调用其他程序,如:jhead-cmd"mogrify-qlity80&i"*jpg -exonly不处理没有exif信息的文件,要和其他参数一起使用 -a修改不同扩展名的同名文件名。拍摄的avi短片exif信息存储...

    Android 4游戏编程入门经典

     8.7 纹理区域、精灵和批处理:隐藏opengl es  8.7.1 textureregion类  8.7.2 spritebatcher类  8.8 精灵动画  8.8.1 animation类  8.8.2 示例  8.9 小结 第9章 super jumper:一个2dopengl es游戏  9.1 ...

    android游戏编程入门

     8.7 纹理区域、精灵和批处理:  隐藏OpenGL ES 334  8.7.1 TextureRegion类 334  8.7.2 SpriteBatcher类 335  8.8 精灵动画 343  8.8.1 Animation类 344  8.8.2 示例 345  8.9 小结 348  第9章 Super ...

    Windows Script Host 2脚本开发人员指南PDF+源码

    伊恩Morrish,克拉伦斯华盛顿和迈克尔哈里斯,如新闻组参与者分享了大量有用的知识,但我还需要更多细节,特别是关于高级编程。我写的关于VBA编程和HTML脚本的书籍,所以我熟悉HTML脚本和ActiveX编程处理的互联网...

    ESM_ArcSight控制台用户指南(中文翻译版—Zephyr)_6.11.0 .pdf

    在使用网络建模向导的批处理中 85 基于SmartConnector的方法 85 使用资产模型导入 FlexConnector 85 自动从漏洞扫描器报表 86 ArcSight辅助方法 86 作为来自现有配置数据库的存档文件 87 使用向导填充网络模型 87 ...

    ORACLE9i_优化设计与系统调整

    §10.13.4 大量(bluk),块和批处理 124 §10.13.5 对应用适当的分段 124 §10.13.6 优化目标 124 §10.13.7 优化步骤和方法 125 §10.13.8 使用ORACLE 诊断工具 126 第三部分 ORACLE应用系统开发优化 128 第11章 ...

    DOS 软盘+光盘+U盘+硬盘+NTFS 想拥有更强大的DOS功能??

    AUTOEXEC.BAT DOS的开机自动执行批处理文件。 CONFIG.SYS DOS的系统配置文件。 DELTREE.EXE DOS7.1自带的删除目录及内嵌文件工具。 D.COM DOS下的系统关机工具,适用于ATX电源。 DI1000DD.SYS U盘的驱动。 DOSKEY....

    入门学习Linux常用必会60个命令实例详解doc/txt

    虚拟控制台最有用的是,当一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作,关闭这个程序。 shutdown 1.作用 shutdown命令的作用是关闭计算机,它的使用权限是超级用户。 2.格式 shutdown [-h][-i...

Global site tag (gtag.js) - Google Analytics