这里不打算写windows,显示执行命令(除echo)和执

Windows cmd

一.轻易批管理之中命令简单介绍
1.Echo 命令
开荒回显或关闭央浼回显著效果用,或体现消息。若无别的参数,echo 命令将显示当前回显设置。
语法
echo [{ on|off }] [message]
Sample:@echo off / echo hello world
在骨子里运用中大家会把那条命令和重定向符号(也称之为管道符号,一般用> >> ^)结合来兑现输入一些命令到一定格式的文书中.这就要后来的例证中展示出来。

windows bat(批管理)——基础语法

一.轻巧批管理在那之中命令简要介绍

在*unix系统中,常用的shell有sh,bash,csh/tcsh, ksh.

对于跨平台的程序,平日会提供一些平价的命令行工具,因而shell脚本、bat脚本文件就必须了。互联网上shell的书、文章都游人如织的,所以领悟起来会相对轻松的多,而windows下的bat网络则少有涉嫌。这里不希图写windows bat 编制程序大全,而是差相当少对bat做一个轻松的入门级的学习。

2.@ 命令
代表不显得@前边的命令,在入侵进度中(比如使用批管理来格式化敌人的硬盘)自然不可能让对方看到你利用的通令啦。
Sample:@echo off
@echo Now initializing the program,please wait a minite...
@format X: /q/u/autoset (format 那个命令是不得以动用/y这么些参数的,可喜的是微软留了个autoset那些参数给我们,效果和/y是同样的。)

 

1.Echo 命令
开拓回显或关闭乞求回显作用,或浮现音信。若无别的参数,echo 命令将展现当前回显设置。

sh来自于systemV的Unix,是观念的Unix的shell,直到今后非常多的系统管理员仍旧喜欢使用sh。
bash来自于BSD Unix,语法特别类似于C语言,所以普通有C/C++编制程序背景的开垦职员最垂怜使用。
ksh是对sh的扩大,且接受了csh的一部分使得的功能,不过出于开端ksh的license是AT&T,所以后来出现了广大的ksh的开源版本,举例mksh,pdksh等。
bash是后日看不尽Linux的发行版中暗许的shell,综合了其它shell的无数独到之处。

无论是在写shell,依然bat,它们的规划都服从那样一条规范:一切都以命令。Windows下命令是大小写不敏感的。

3.Goto 命令
点名跳转到标签,找到标签后,程序将拍卖从下一行初叶的命令。
语法:goto label (label是参数,钦点所要转向的批处理程序中的行。)
Sample:
if { %1 }=={ } goto noparms
if { %2 }=={ } goto noparms(如果这里的if、%1、%2你不了然的话,先跳过去,前边会有详尽的解释。)
@Rem check parameters if null show usage
:noparms
echo Usage: monitor.bat ServerIP PortNumber
goto end
标签的名字能够不管起,然而最为是有含义的假名啦,字母前加个:用来表示这几个字母是标签,goto命令正是依据那个:来查找下一步跳到到这里。最棒有点认证那样您外人看起来才会知晓您的来意啊。

  1. @

语法:
echo [{on│off}] [message]
Sample:@echo off / echo hello world

下边描述csh的部分中坚的语法(在sh情状中实践csh切换成csh情况):

 

4.Rem 命令
注脚命令,在C语言中卓越与/*--------*/,它并不会被实行,只是起一个讲解的服从,便于别人阅读和你和谐从此涂改。
Rem Message
Sample:@Rem Here is the description.

行首有了它的话,这一行的通令就不出示了。

在实际上利用中我们会把那条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来促成输入一些命

1) 变量

着力命令(rem, echo, @,/?)

rem:注释 (comment, remarks)。参数能够是别的内容。

echo :它有七个职能:打字与印刷音讯、调节和测量检验按键。假若参数是on 可能off,代表展开、关闭调节和测量试验,如果前边是其他内容,则参数代表要出口的音讯。为啥正是debug按键呢?要是设置了echo on,随后试行的其他命令及其施行结果都会输出到专门的学问输出流。

@用来关闭有些命令的调节和测量检验新闻,意思是说利用@注解的授命不会打出命令自身、实行结果。

/? 查看命令协助

例如:

REM open the cmd echo
@echo on
echo hello, windows cmd 
@echo hello, windows cmd 

REM close the cmd echo
@echo off
echo hello, windows cmd 
@echo hello, windows cmd

 

实施结果: 

D:Notewindows cmd>REM open the cmd echo

D:Notewindows cmd>echo hello, windows cmd
hello, windows cmd
hello, windows cmd

D:Notewindows cmd>REM close the cmd echo
hello, windows cmd
hello, windows cmd

 

对于REM的授命,也是会打到STD里,假诺不愿意看到,就足以利用@标记。 

 

 

5.Pause 命令

  1. echo

令到特定格式的文书中.那就要此后的事例中展示出来。

经过set来定义局地变量x,通过$x或${x}来行使变量x的值,$%x代表变量的值的长度, $?x来判别变量x是不是设置,如设置则为1,不然为0。

操纵命令(if-else, for-in-do, goto)

 

运营 Pause 命令时,将突显上面的消息:
Press any key to continue . . .
Sample:
@echo off
:begin
copy a:*.* d://back
echo Please put a new disk into driver A
pause
goto begin
在这几个事例中,驱动器 A 中磁盘上的具备文件均复制到d://back中。突显的笺注提示您将另一张磁盘放入驱动器 A 时,pause 命令会使程序挂起,以便你改换磁盘,然后按任性键继续管理。

2.1  echo [{on|off}] [message]

2.@ 命令

复制代码 代码如下:

if-else

 

if [noterrorlevel number command [else expression] 基于上一个命令执行的结果进行判定操作

if [notstring1==string2 command [else expression] 判定两个字符串是否相等

if [notexist FileName command [else expression]  判定指定的文件是否存在

If command extensions are enabled, use the following syntax:

if [/istring1 CompareOp string2 command [else expression] 进行字符串比较 (equ, neq, lss, leq, gtr, geq)

if cmdextversion number command [else expression]

if defined variable command [else expression]

 

 

 

6.Call 命令
从二个批管理程序调用另叁个批管理程序,而且不安息父批管理程序。call 命令接受用作调用指标的竹签。要是在剧本或批管理公事外使用 Call,它将不会在指令行起功用。
语法
call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
参数
[Drive: }[Path] FileName
钦命要调用的批管理程序的任务和名称。filename 参数必得具有 .bat 或 .cmd 扩张名。

输出,回显。

表示不显示@后边的一声令下,在侵略进程中(比方利用批管理来格式化仇人的硬盘)自然无法让对方看到你使

set x = 5
echo $x
echo ${x}kg
echo $%x  

For-in-do

巡回推行,命令语法:

for {%variable | %%variable} in (set) do command [CommandLineOptions]

1)For, in, do 是主导组织,不能缺少;

2){%variable | %%variable} 要求的,变量大小写敏感。

在指令提醒符中实行for时,for中引用变量时,使用%

在批管理公事中实践for时,for中援用变量时,使用%%

除此以外,为了防止与bat文件的参数 %0到 %9相冲突,所以变量不能是0-9的数字

3)( set ) 要求的。用于钦点多少个 files, directories, range of values, textstrings。括号不可能省。

 

4)command 供给的,代表要举行的命令。

5)commandLineOptions, 实践command时所需的参数

 

越来越多用法,可能参谋:

 

 

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:
萨姆ple.bat的开始和结果如下:
@echo off
choice /c:dme defrag,mem,end
if errorlevel 3 goto defrag (应先判定数值最高的错误码)
if errorlevel 2 goto mem
if errotlevel 1 goto end

2.2 on | off

用的授命啦。
Sample:@echo off
@echo Now initializing the program,please wait a minite...
@format X: /q/u/autoset (format 那么些命令是不得以接纳/y那些参数的,可喜的是微软留了个autoset那

全局变量的定义setenv v  value 该变量将被此shell派生的兼具子shell承袭。

goto

语法:goto label

跳转到钦命的label。假使钦定的label海市蜃楼,就继续实践下一条命令。假设找到label,就从label处继续实践。假使程序以正常顺序施行到贰个label处,实际不是因而goto跳转到label,label下的口舌照旧以常规顺序实施。

 

图片 1 

 

 

想要精通更加多指令参见:

 

 

 

 

 

 

 

:defrag
c://dos//defrag
goto end
:mem
mem
goto end
:end
echo good bye

它实际是一个按键命令,正是说它独有三种意况:张开和关闭。于是就有了echo on和echo off八个指令了。

个参数给我们,效果和/y是平等的。)

$$代表这段时间经过的PID, $status 或 $? 表示退出状态。

此文件运营后,将显得 defrag,mem,end[D,M,E]? 顾客可挑选d m e ,然后if语句将作出决断,d表示实践标号为defrag的程序段,m表示实行标号为mem的程序段,e表示试行标号为end的程序段,每一种程序段最后都是goto end将次第跳到end标号处,然后程序将显得good bye,文件结束。

(1)echo off

3.Goto 命令
点名跳转到标签,找到标签后,程序将拍卖从下一行开端的通令。

2)数组

9.If 命令

只显示试行结果

语法:goto label (label是参数,钦赐所要转向的批处理程序中的行。)
Sample:
if {%1}=={} goto noparms
if {%2}=={} goto noparms(假诺这里的if、%1、%2你不知底的话,先跳过去,前面会有详实的演说。)
@Rem check parameters if null show usage
:noparms
echo Usage: monitor.bat ServerIP PortNumber
goto end

概念数组myarr, 通过$myarr[index]来拜候数组中的值,注意index是从1发端的。通过$myarr或$myarr[*]来做客数组全数的要素。通过$#myarr来查阅成分的个数。

if 代表将判别是还是不是符合规定的口径,从而决定进行不一的命令。 有二种格式:

(2)echo on (默认)

标签的名字能够不管起,不过最为是有含义的字母啦,字母前加个:用来表示这么些字母是标签,goto命令

复制代码 代码如下:

1、if "参数" == "字符串" 待实践的吩咐
参数假设等于钦定的字符串,则条件建构,运营命令,不然运营下一句。(注意是八个等号)
如if "%1"=="a" format a:
if { %1 }=={ } goto noparms
if { %2 }=={ } goto noparms

显示施行命令(除echo)和推行结果

正是依据那些:来查找下一步跳到到这里。最棒有一点认证那样您旁人看起来才会知晓您的来意啊。

set myarr = (str1, str2,str3)
echo $myarr[2]
echo $myarr
echo $myarr[*]

2、if exist 文件名 待试行的下令
如果有钦赐的公文,则条件创设,运转命令,不然运营下一句。
如if exist config.sys edit config.sys

(3)> 输出重定向

4.Rem 命令

3)命令替换

3、if errorlevel / if not errorlevel 数字 待推行的通令
假诺重临码等于钦赐的数字,则条件建构,运营命令,不然运转下一句。
如if errorlevel 2 goto x2
DOS程序运营时都会回去一个数字给DOS,称为错误码errorlevel或称重返码,常见的归来码为0、1。

创制或清空文件,然后把数量输出到文件

疏解命令,在C语言中一定与/*--------*/,它并不会被实践,只是起一个讲解的坚守,便于外人阅读和您

通过set x = `cmd`来实施命令,且结果赋值给变量。

10.for 命令
for 命令是贰个相比复杂的一声令下,首要用来参数在钦命的范围内循环实践命令。
在批管理文件中选择 FOENVISION 命令时,钦点变量请使用 %%variable

echo hi > a.txt

温馨今后修改。
Rem Message
Sample:@Rem Here is the description.

复制代码 代码如下:

for { %variable|%%variable } in (set) do command [ CommandLineOptions]
%variable 钦点一个十足字母可替换的参数。
(set) 钦赐二个或一组文件。能够行使通配符。
command 钦命对各种文件举办的通令。
command-parameters 为一定命令钦点参数或命令行按钮。
在批管理文件中动用 FO汉兰达 命令时,钦赐变量请使用 %%variable
而不要用 %variable。变量名称是分别轻重缓急写的,所以 %i 差别于 %I

把多少追加到文件

5.Pause 命令

set d = `date`
echo $d
echo $d[6]-$d[2]-$d[3]

假定命令扩张名被启用,下列额外的 FO途达 命令格式谋面前遭逢
支持:

echo this is a text >>a.txt

运维 Pause 命令时,将显得下面包车型客车新闻:
Press any key to continue . . .

4)命令行参数

FOR /D %variable IN (set) DO command [command-parameters]

 

Sample:
@echo off
:begin
copy a:*.* d:back
echo Please put a new disk into driver A
pause
goto begin

通过$argv[1],$argv[2]或$1,$2来访谈命令行参数。命令行参数的个数为$#argv。

假若聚焦富含通配符,则钦定与目录名匹配,而不与公事
名匹配。

echo hi > a.txt

在这么些事例中,驱动器 A 中磁盘上的持有文件均复制到d:back中。展现的注脚提醒您将另一张磁盘归入

5)文件名扩大的元字符

FOR /R [[drive:]path] %variable IN (set) DO command [command-

type a.txt

驱动器 A 时,pause 命令会使程序挂起,以便你更动磁盘,然后按任性键继续管理。

不得不选拔?,*,[abc],[a-c]。

检查以 [drive:]path 为根的目录树,指向每一种目录中的
FO景逸SUV 语句。假使在 /PAJERO 后不曾点名目录,则接纳当前
目录。倘若集仅为多个单点(.)字符,则枚举该目录树。

echo this is a text >>a.txt

6.Call 命令

6)IO重定向和管道

FOR /L %variable IN (start,step,end) DO command [command-para

type a.txt

从二个批管理程序调用另一个批管理程序,何况不安歇父批管理程序。call 命令接受用作调用指标的竹签

将下令的输出重定向到文件为>。
将指令的出口重定向并追加到文件为>>。
将下令的输入重定向到文件为<。
将指令的报错音信重定向到一个文本(cmd>/dev/tty)>&errors。
将下令的出口和错误输出分别重定向(cmd > goodstuff)  >& badstuff。

本文由必威发布于必威-操作系统,转载请注明出处:这里不打算写windows,显示执行命令(除echo)和执

相关阅读