大家好,今天小编来为大家解答以下的问题,关于深入解析Windows批处理(CMD/BAT)编程技巧与指南,这个很多人还不知道,现在让我们一起来看看吧!
参考: http://blog.csdn.net/bingjie1217/article/details/12947327
http://www.cnblogs.com/doit8791/archive/2012/05/20/2511001.html
在开始之前,我先简单解释一下cmd文件和bat文件的区别:两者本质上没有什么区别。它们都是简单的文本编码方法,可以使用记事本创建、编辑和查看。两者使用的命令行代码也相同,但是cmd文件比bat文件允许更多的命令。 cmd文件只能在Windows 2000以上系统上运行,而bat文件则没有这个限制。上述区别从它们的文件描述中也可以看出:cmd文件的描述是“windows nt命令脚本”,bat文件的描述是“ms dos批处理文件”
如果没有一定的相关知识,阅读和理解批处理文件可能都不容易,更不用说自己编写了。批处理文件是包含一个或多个命令的无格式文本文件。其文件扩展名是.bat 或.cmd。在命令提示符处输入批处理文件的名称,或者双击该批处理文件,系统将调用cmd.exe按照文件中出现的顺序一一运行该文件中的命令。使用批处理文件(也称为批处理程序或脚本)来简化日常或重复性任务。当然,我们这个版本的主要内容是介绍批处理在入侵中的一些实际应用,比如使用批处理文件给系统打补丁、批量植入后门程序,这些我们后面会提到。让我们开始我们的批处理学习之旅吧。
1.简单批处理内部命令介绍
1)回显命令
打开或关闭回声,或显示消息。如果没有任何参数,echo 命令将显示当前的echo 设置。
语法
回声[{开|关}][消息]
样本1:
@echooff
回声你好世界
样本2:
@回声关闭
回声1
回声。
回声2
回声
回声3
暂停
在实际应用中,我们会将该命令与重定向符号(也称为管道符号,通常是^)结合起来,将一些命令输入到特定格式的文件中。这将在以后的示例中得到体现。
c:dir *.txt 1.txt
c:dir *.txt 1.txt
2)@命令
意思是@后面的命令不会显示。在入侵过程中(例如使用批处理格式化敌方硬盘),对方自然看不到你使用的命令。
示例:@echo 关闭
3)转到命令
指定跳转到标签。一旦找到标签,程序将从下一行开始处理命令。
语法:goto label(label是一个参数,指定批处理程序中要重定向的行。)
样本:
if { %1 }=={ } 转到noparms
if { %2 }=={ } goto noparms (如果不明白这里的if、%1、%2,先跳过,后面会有详细解释。)
@Rem 检查参数如果为null 显示用法
:noparms
echoUsage:monitor.bat服务器IP端口号
转到结束
标签的名称可以任意,但最好使用有意义的字母。在字母前添加:表示该字母是标签。 goto 命令基于此:找到下一步并跳转到那里。最好有一些解释,以便其他人能够理解你的意图。
4)rem命令
注释命令相当于C语言中的/*--------*/。它不会被执行,只是作为注释,方便别人阅读和你以后修改。
雷姆留言
示例:@Rem 这是描述。
5)暂停命令
运行暂停命令时,会显示以下消息:
按任意键继续。
样本:
@回声关闭
:开始
复制a:*.* d:\back
echo 请将新磁盘放入驱动器A
暂停
转到开始
在此示例中,驱动器A 中的磁盘上的所有文件都复制到d:\back。当显示注释提示您将另一个磁盘放入驱动器A 时,暂停命令会导致程序挂起,以便您可以更换磁盘,然后按任意键继续处理。
6)调用命令
从另一个批处理程序调用一个批处理程序,而不终止父批处理程序。 call 命令接受一个标签作为调用的目标。如果您在脚本或批处理文件之外使用调用,则它将无法在命令行上运行
语法
调用[[Drive:][路径] 文件名[批参数]] [:标签[参数]]
范围
[Drive:}[路径] 文件名
指定要调用的批处理程序的位置和名称。文件名参数必须具有.bat 或.cmd 扩展名。
7)启动命令
开始
启动单独的命令提示符窗口来运行指定的程序或命令。如果不带参数使用,start 将打开第二个命令提示符窗口。
语法
开始["标题"] [/dPath] [/min] [/max] [{/separate |/shared}] [{/low | /正常| /高| /实时| /高于正常水平|低于正常}][/wait ] [/B] [文件名] [参数]
范围
"title" 指定要在命令提示符窗口的标题栏中显示的标题。
/dpatch 指定启动目录。
/i 将Cmd.exe 启动环境转移到新的命令提示符窗口。
/min 启动一个新的最小化窗口。
/max 启动一个新的最大化窗口。
/separate 在单独的内存空间中启动16 位程序。
/shared 在共享内存空间中启动16 位程序。
/low 以空闲优先级启动应用程序。
/normal 以普通优先级启动应用程序。
/high 以高优先级启动应用程序。
/realtime 以实时优先级启动应用程序。
/abovenormal 启动高于正常优先级的应用程序。
/belownormal 以低于正常优先级的优先级启动应用程序。
/wait 启动应用程序并等待其完成。
/b 启动应用程序而不打开新的命令提示符窗口。除非应用程序启用CTRL+C,否则CTRL+C 操作将被忽略。使用CTRL+BREAK 中断应用程序。
只需将文件名作为命令键入即可通过其文件关联来运行非可执行文件。有关使用assoc 和ftype 在命令脚本中创建这些关联的详细信息,请参阅“”。
当运行命令的第一个标记是“CMD”字符串但不包含扩展名或路径限定符时,“CMD”将被COMSPEC 变量的值替换。这可以防止用户从当前目录中选择cmd。
当您运行32 位图形用户界面(GUI) 应用程序时,cmd 不会等待应用程序退出就返回到命令提示符。如果您从命令脚本运行应用程序,则不会出现这种新情况。当您运行的命令中的第一个符号不包含扩展名时,Cmd.exe 将使用PATHEXT 环境变量的值来确定要查找的扩展名以及查找顺序。 PATHEXT变量的默认值为:COM;EXE;BAT;CMD(语法与PATH变量相同,使用分号分隔不同元素)。当您搜索可执行文件并且没有任何扩展名匹配时,开始搜索目录名称。
具体例子:
注意:如果你的程序路径中有空格,必须将路径用“”括起来,否则系统会提示找不到XX文件。另外,运行某些程序时,需要在路径前面添加一对。空白“”表示创建一个空白窗口,它指向的程序是XXXXXXXX。并且不要忘记空格。
当我想运行位于“D:draw”中的“photoshop.exe”时,我应该使用以下命令:
start “”D:drawphotoshop.exe” 表示在常规窗口中运行程序
如果您希望程序在最大化窗口中运行,请使用以下命令:
start /max "" "D:drawphotoshop.exe" 表示在最大化窗口中运行程序
像这样最小化这个:
start /min "" "D:drawphotoshop.exe" 表示在最小化窗口中运行程序
等待一个程序被允许完成,即窗口关闭后,再打开下一个程序。这可以这样做:
启动/w "" "D:drawphotoshop.exe"
启动“cmd.exe”
启动/min “” “e:t.cmd”
8)选择命令
选择使用此命令通过让用户输入字符来运行不同的命令。使用时需要添加/c:参数。 c:后面应该写出提示符中可以输入的字符,字符之间不能有空格。它的返回码是1234……
如:选择/c:dme defrag,mem,end
将显示
碎片整理,内存,结束[D,M,E]?
样本:
Sample.bat内容如下:
@回声关闭
选择/c:dme 碎片整理、内存、结束
OK,本文到此结束,希望对大家有所帮助。
【深入解析Windows批处理(CMD/BAT)编程技巧与指南】相关文章:
用户评论
我一直想学习windows批处理,这篇文章能让我了解一下吗?
有9位网友表示赞同!
看来要学习点高级操作了,微软官方文档太难懂啦。
有9位网友表示赞同!
终于有人讲解清楚了,之前各种看不懂啊。
有16位网友表示赞同!
cmd命令行总觉得没那么好用,批处理更方便吧。
有19位网友表示赞同!
我的自动化脚本可以用这些知识来优化吗?
有7位网友表示赞同!
学习一下批处理能让我写一些小脚本提高工作效率?
有14位网友表示赞同!
原来还有这么多功能啊,感觉windows cmd真的很有用!
有12位网友表示赞同!
这篇文章内容很详细,适合新手上手吗?
有10位网友表示赞同!
看了标题我立刻想到以前写过的一些批处理脚本,好怀念呢。
有13位网友表示赞同!
我想知道一些常用的批处理语法,这篇文章会有吗?
有18位网友表示赞同!
我需要学习一下如何利用批处理进行文件操作。
有16位网友表示赞同!
这篇文章可以帮助我解决哪些windows命令行的问题?
有11位网友表示赞同!
看来学习批处理能增强我的系统管理能力啊!
有17位网友表示赞同!
批处理和python哪个更常用?适合新手入门吗?
有12位网友表示赞同!
想了解一些高级批处理技巧,比如如何用循环操作文件。
有17位网友表示赞同!
期待这篇文章能讲解一些实用的批量任务脚本编写方法。
有14位网友表示赞同!
这篇文章能让我高效地解决日常办公中的自动化任务吗?
有6位网友表示赞同!
感觉学习批处理后可以更好地控制windows操作系统了!
有14位网友表示赞同!
我想学习如何利用批处理创建快捷方式或启动程序。
有5位网友表示赞同!
终于有人写过一篇通俗易懂的批处理教程,太棒了!
有19位网友表示赞同!