批处理命令怎么写( 二 )


大家知道%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" 。
2. 批处理文件命令怎么写 很长啊 , 还有些资料 , 想要的话留个邮箱吧 。
一般批处理都是先建立一个文本文件然后输入 批处理命令然后另存为.bat文件就好了的 。
1.Echo 命令打开回显或关闭请求回显功能 , 或显示消息 。如果没有任何参数 , echo 命令将显示当前回显设置 。
语法echo [{on|off}] [message]Sample:echo off / echo hello world在实际应用中我们会把这条命令和重定向符号(也称为管道符号 , 一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来 。[email protected] 命令表示不显示@后面的命令 , 在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦 。
Sample:@echo [email protected] 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 命令会使程序挂起 , 以便您更换磁盘 , 然后按任意键继续处理 。