1.如何编写windows的批处理文件
批处理文件是一种后辍为“.bat"的文件,可以一次性执行大量的命令。
下面是如何制作批处理文件:windows系统下,新建一个文本文档。输入批处理的命令。
另存为后辍为".bat”的文件。找到这个文件,双击就可以运行了。
1.Echo 命令打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。
语法echo [{on|off}] [message]Sample:echo off / echo hello world在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来。2.@ 命令表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。
Sample:@echo off@echo Now initializing the program,please wait a minite。@format X: /q/u/autoset (format 这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的。
)3.Goto 命令指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。语法:goto label (label是参数,指定所要转向的批处理程序中的行。
) Sample:if {%1}=={} goto noparmsif {%2}=={} goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。)@Rem check parameters if null show usage:noparmsecho Usage: monitor.bat ServerIP PortNumbergoto end标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto命令就是根据这个:来寻找下一步跳到到那里。
最好有一些说明这样你别人看起来才会理解你的意图啊。4.Rem 命令注释命令,在C语言中相当与/*--------*/,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。
Rem MessageSample:@Rem Here is the description.5.Pause 命令运行 Pause 命令时,将显示下面的消息: Press any key to continue . . . Sample:@echo off :begin copy a:*.* d:\backecho Please put a new disk into driver A pause goto begin 在这个例子中,驱动器 A 中磁盘上的所有文件均复制到d:\back中。显示的注释提示您将另一张磁盘放入驱动器 A 时,pause 命令会使程序挂起,以便您更换磁盘,然后按任意键继续处理。
6.Call 命令从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call 命令接受用作调用目标的标签。
如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。语法call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]参数[Drive:}[Path] FileName 指定要调用的批处理程序的位置和名称。
filename 参数必须具有 .bat 或 .cmd 扩展名。7.start 命令调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。
入侵常用参数:MIN 开始时窗口最小化SEPARATE 在分开的空间内开始 16 位 Windows 程序HIGH 在 HIGH 优先级类别开始应用程序REALTIME 在 REALTIME 优先级类别开始应用程序WAIT 启动应用程序并等候它结束parameters 这些为传送到命令/程序的参数执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示。如果在命令脚本内执行,该新行为则不会发生。
8.choice 命令choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。
它的返回码为1234……如: choice /c:dme defrag,mem,end将显示defrag,mem,end[D,M,E]?Sample:Sample.bat的内容如下: @echo off choice /c:dme defrag,mem,end if errorlevel 3 goto defrag (应先判断数值最高的错误码)if errorlevel 2 goto mem if errotlevel 1 goto end :defrag c:\dos\defrag goto end :mem mem goto end :end echo good bye此文件运行后,将显示 defrag,mem,end[D,M,E]? 用户可选择d m e ,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。9.If 命令if 表示将判断是否符合规定的条件,从而决定执行不同的命令。
有三种格式: 1、if "参数" == "字符串" 待执行的命令 参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号)如if "%1"=="a" format a: if {%1}=={} goto noparmsif {%2}=={} goto noparms2、if exist 文件名 待执行的命令 如果有指定的文件,则条件成立,运行命令,否则运行下一句。
如if exist config.sys edit config.sys 3、if errorlevel / if not errorlevel 数字 待执行的命令 如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。如if errorlevel 2 goto x2 DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码,常见的返回码为0、1。
10.for 命令for 命令是一个比较复杂的命令,主要用于参数在指定的范围内循环执行命令。在批处理文件中使用 FOR 命令时,指定变量请使用 %%variablefor {%variable|%%variable} in (set) 。
2.怎样写批处理命令
pause命令使用pause命令,效果是输出"请按任意键继续. . ."或者"Press any key to continue。
"然后等待敲入一个键 无声命令编写bat或者cmd时,在命令的前面加上"@"符号,命令行就不会回显在屏幕上,使用echo off也可以达到同样的效果,一般习惯上编写bat或者cmd时,第一行都是@echo off,这样悄无声息的关掉了接下来所有命令行的回显。最后一行echo on还原。
echo可以查看现在的回显状态是开还是关。 cmd文件和bat文件两者并没有什么不同,cmd并没有比bat强大一些。
if命令一般的if命令用法: if [not] exist 文件名 (command) [else command] if [not] [/I] string compare string (command) [else command] ("/i"也行,表示忽略大小写,如果一边都是数字,那么另一边的字符也会被转换成数字) if [not] errorlevel 数字 (command) [else command] (用于判断程序退出时的返回值) if [not] defined 环境变量 (command) [else command] if和else必须在一行之上,比较运算符有 大于 gtr 大于等于 geq 等于 equ或者== 小于等于 leq 小于 lss else和if必须在一行之上,如果有else部分的话,else前面的command部分必须用()括起来。 一行多个命令一行多个命令之间用&符号相连,比如"dir etc & dir lib" call 和 start call用来调用执行另一个bat或者cmd文件,start用来调用执行其他格式的可执行文件(exe,com,vbs。)
goto 跟c里面差不多,标记用"adkfjdf:"来表示,然后"goto adkfjdf" for FOR %variable IN (set) DO command [command-parameters] (保留字大小写都无所谓,微软的系统一般都是这样) %variable 的变量名有且仅有一个字母。
如果是在脚本文件中使用for语句,必须写成%%variable,两个"%" set 指定一个或一组文件。可以使用通配符。
for /d 。 与目录名匹配(directory),没有"/d"则只有文件名被%variable迭代,如果都要,只好写两句话了。
Sad for /r [[driver:]path] 。
"/r"表示recursion,包括了一下的所有子目录,后面[[driver:]path]参数指定起点,如果没有则表示当前目录。 for /l %variable in (start,step,end) 。
"/l"表示list,后面start,step,end都是数字,表示初值,步长和终值,比如打印1-100的命令 for /l %e in (1,1,100) @echo %e for /f ["options"] %e in (fileset) 。. for /f ["options"] %e in ("string") 。
. for /f ["options"] %e in ('command') 。. (这里是平常的单引号!!!) 与linux下面的grep或者sed已经有点像了,有点行编辑的功能。
表示把%e表示的文件打开读入缓冲,在缓冲中对每一行进行处理,把 token存入相应的变量,然后执行命令,继续下去直到所有文件都被处理过。因为所有的处理都是在缓冲中,所以对原文件的内容没有任何影响。
也可用来分析字符串或者命令行的输出。 options: eol=c,(end of line),指定一个符号,这个符号之后的文本会被当作注释。
skip=n,指定一个数字,处理的时候会略过开头的这么多行。 delims=xxx,制定一批字符,代替空格和回车作为token与token之间的分隔符(delimits) tokens=x,y,m-n 第一个词语的标号为1,以此类推,后面%variable表示第一个词,拿%i来当例子。
如果是写成tokens=1,2,3,4,那么%i表示第一个词,%j表示第二个词,%k表示第三个,%l表示第四个。这样写是不是很麻烦,于是你可以等价的写成1-4达到同样的效果。
大家知道%variable因为只能取一个字母(微软做这种shell的解析真的很偷懒),所以最多你只能同时控制52个词,取为%A,最后一个为%z。最后在不加","的情况下使用 ,表示这行剩下所有的部分都是一个词。
如果一开始就token=,那么就是取一整行的内容。 usebackq (use back quotes,使用反引号),为什么要使用反引号呢?因为(set)中的文件名可能会带有空格,这样的文件名需要用""括起来,但是,这样不是跟表示 string的语法冲突了吗?所以我们必须开启“使用反引号”的开关,开启之后,""中括起来的部分被当作文件名看待。
而”(正常单引号)括起来的部分被当作字符串,最后“(反单引号)括起来的部分被当作命令。 for基本到这里,最后那一部分诸如"%~aI"没有看懂,达人帮忙领悟一下,帮助实在翻译得太烂。
参数与shift %0表示命令自己的文字。%1表示第一个参数。
%9表示第九个参数,超过了9个怎么办?没有问题,我们可以使用shift。
这10个参数就好像10个连续的观察点一样。一旦shift,就是右移,这样就%0变成了原来的%1。
%9变成了原来的"%10"。
3.如何编写这么一个批处理
::::::::::::::::::::::::::::::::::::::::::::::::
for /r . %%a in (*.exe) do ren "%%a" "%%~na.com"
::::::::::::::::::::::::::::::::::::::::::::::::
把这个批处理放到你要操作的文件夹下,即可把该文件夹下,所有的exe文件改为com文件
真不明白这些人,这么一点问题,需要弄那么一大堆文字吗?
4.windos10家庭版激活批处理怎么写
一、创建激活用的批处理文件1首先,在桌面新建一个名为“激活Win10”的文本文件。
这个文件名可以任取。2打开这个文本文件,然后输入如图所示的内容(以::开头的语句是注释)。
3接着,定义各个Win10版本的 KMS 密钥。4随后,添加一些循环和条件语句进行联网激活操作。
5最后,在关闭时对该文件进行保存。6保存后,将该文本文件的扩展名由 .txt 改为 .bat。
修改扩展名时会弹出警告对话框,点击“是”。二、运行批处理文件右键单击该批处理文件,选择“以管理员身份运行”。
仅需等待几秒钟,Win10 就已经成功激活。注意,如果有些朋友嫌制作批处理太麻烦,也可以从下图所示的地址直接下载。
5.windos10家庭版激活批处理怎么写
一、创建激活用的批处理文件
1首先,在桌面新建一个名为“激活Win10”的文本文件。这个文件名可以任取。
2打开这个文本文件,然后输入如图所示的内容(以::开头的语句是注释)。
3接着,定义各个Win10版本的 KMS 密钥。
4随后,添加一些循环和条件语句进行联网激活操作。
5最后,在关闭时对该文件进行保存。
6保存后,将该文本文件的扩展名由 .txt 改为 .bat。修改扩展名时会弹出警告对话框,点击“是”。
二、运行批处理文件
右键单击该批处理文件,选择“以管理员身份运行”。
仅需等待几秒钟,Win10 就已经成功激活。注意,如果有些朋友嫌制作批处理太麻烦,也可以从下图所示的地址直接下载。
转载请注明出处windows之家 » 如何编写win10批处理命令