windowdos基本操作命令介绍1 echo 和 @
回显命令
@                        #关闭单⾏回显
echo off                #从下⼀⾏开始关闭回显
@echo off                #从本⾏开始关闭回显。⼀般批处理第⼀⾏都是这个
echo on                  #从下⼀⾏开始打开回显
echo                    #显⽰当前是 echo off 状态还是 echo on 状态
echo.                    #输出⼀个”回车换⾏”,空⽩⾏
#(同echo, echo; echo+ echo[ echo] echo/ echo)
2 errorlevel
echo %errorlevel%
每个命令运⾏结束,可以⽤这个命令⾏格式查看返回码
默认值为0,⼀般命令执⾏出错会设 errorlevel 为1
3 dir
显⽰⽂件夹内容
dir                    #显⽰当前⽬录中的⽂件和⼦⽬录
dir /a                  #显⽰当前⽬录中的⽂件和⼦⽬录,包括隐藏⽂件和系统⽂件
dir c: /a:d            #显⽰ C 盘当前⽬录中的⽬录
dir c: /a:-d            #显⽰ C 盘根⽬录中的⽂件
dir c: /b/p            #/b只显⽰⽂件名,/p分页显⽰
dir *.exe /s            #显⽰当前⽬录和⼦⽬录⾥所有的.exe⽂件
4 cd
切换⽬录
cd \                    #进⼊根⽬录
cd                      #显⽰当前⽬录
cd /d d:sdk            #可以同时更改盘符和⽬录
5 md
创建⽬录
md d:abc            #如果 d:a 不存在,将会⾃动创建中级⽬录
#如果命令扩展名被停⽤,则需要键⼊ mkdir abc。
6 rd
删除⽬录
rd abc                  #删除当前⽬录⾥的 abc ⼦⽬录,要求为空⽬录
rd /s/q d:temp        #删除 d:temp ⽂件夹及其⼦⽂件夹和⽂件,/q安静模式
7 del
删除⽂件
del         #删除指定⽂件,不能是隐藏、系统、只读⽂件
del /q/a/f d:temp*.*
删除 d:temp ⽂件夹⾥⾯的所有⽂件,包括隐藏、只读、系统⽂件,不包括⼦⽬录
del /q/a/f/s d:temp*.*
删除 d:temp 及⼦⽂件夹⾥⾯的所有⽂件,包括隐藏、只读、系统⽂件,不包括⼦⽬录
8 ren
重命名命令
ren d:temp tmp        #⽀持对⽂件夹的重命名
9 cls
清屏
10 type
显⽰⽂件内容
type c:boot.ini        #显⽰指定⽂件的内容,程序⽂件⼀般会显⽰乱码type *.txt              #显⽰当前⽬录⾥所有.txt⽂件的内容
11 copy
拷贝⽂件
copy d:test.bak
复制 ⽂件到 d: ,并重命名为 test.bak
copy
从屏幕上等待输⼊,按 Ctrl+Z 结束输⼊,输⼊内容存为⽂件con代表屏幕,prn代表打印机,nul代表空设备
+ 2.
合并 1.txt 和 2.txt 的内容,保存为 3.txt ⽂件
如果不指定 3.txt ,则保存到 1.txt
+
复制⽂件到⾃⼰,实际上是修改了⽂件⽇期
12 title
设置cmd窗⼝的标题
title 新标题            #可以看到cmd窗⼝的标题栏变了
13 ver
显⽰系统版本
14 label 和 vol
设置卷标
vol                    #显⽰卷标
label                  #显⽰卷标,同时提⽰输⼊新卷标
label c:system          #设置C盘的卷标为 system
15 pause
暂停命令
16 rem 和 ::
注释命令
注释⾏不执⾏操作
17 date 和 time
⽇期和时间
date              #显⽰当前⽇期,并提⽰输⼊新⽇期,按"回车"略过输⼊date/t            #只显⽰当前⽇期,不提⽰输⼊新⽇期
time              #显⽰当前时间,并提⽰输⼊新时间,按"回车"略过输⼊time/t            #只显⽰当前时间,不提⽰输⼊新时间
18 goto 和 :
跳转命令
:label            #⾏⾸为:表⽰该⾏是标签⾏,标签⾏不执⾏操作
goto label        #跳转到指定的标签那⼀⾏
19 find (外部命令)
查命令
find "abc"
在 ⽂件⾥查含 abc 字符串的⾏
如果不到,将设 errorlevel 返回码为1
find /i “abc”
查含 abc 的⾏,忽略⼤⼩写
find /c "abc"
显⽰含 abc 的⾏的⾏数
20 more (外部命令)
逐屏显⽰
more         #逐屏显⽰ 的⽂件内容
21 tree
显⽰⽬录结构
tree d:                #显⽰D盘的⽂件⽬录结构
22 &
顺序执⾏多条命令,⽽不管命令是否执⾏成功
23 &&
顺序执⾏多条命令,当碰到执⾏出错的命令后将不执⾏后⾯的命令
find "ok" && echo 成功
如果到了"ok"字样,就显⽰"成功",不到就不显⽰
24 ||
顺序执⾏多条命令,当碰到执⾏正确的命令后将不执⾏后⾯的命令
find "ok" || echo 不成功
如果不到"ok"字样,就显⽰"不成功",到了就不显⽰
25 |
管道命令
dir *.* /s/a | find /c ".exe"
管道命令表⽰先执⾏ dir 命令,对其输出的结果执⾏后⾯的 find 命令
该命令⾏结果:输出当前⽂件夹及所有⼦⽂件夹⾥的.exe⽂件的个数
type re
这个和 more 的效果是⼀样的
26 > 和 >>
输出重定向命令
> 清除⽂件中原有的内容后再写⼊
>> 追加内容到⽂件末尾,⽽不会清除原有的内容
主要将本来显⽰在屏幕上的内容输出到指定⽂件中
指定⽂件如果不存在,则⾃动⽣成该⽂件
type >prn
屏幕上不显⽰⽂件内容,转向输出到打印机
echo hello world>con
在屏幕上显⽰hello world,实际上所有输出都是默认 >con 的
copy f: >nul
拷贝⽂件,并且不显⽰"⽂件复制成功"的提⽰信息,但如果f盘不存在,还是会显⽰出错信息copy f: >nul 2>nul
不显⽰”⽂件复制成功”的提⽰信息,并且f盘不存在的话,也不显⽰错误提⽰信息
echo ^^W ^> ^W>
⽣成的⽂件内容为 ^W > W
^ 和 > 是控制命令,要把它们输出到⽂件,必须在前⾯加个 ^ 符号
27 <
从⽂件中获得输⼊信息,⽽不是从屏幕上
⼀般⽤于 date time label 等需要等待输⼊的命令
@echo off
echo 2005-05-01&
date &
这样就可以不等待输⼊直接修改当前⽇期
28 %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*
命令⾏传递给批处理的参数
%0 批处理⽂件本⾝
%1 第⼀个参数
%9 第九个参数
dos命令运行exe程序%* 从第⼀个参数开始的所有参数
批参数(%n)的替代已被增强。您可以使⽤以下语法:
%~1            - 删除引号("),扩充 %1
%~f1            - 将 %1 扩充到⼀个完全合格的路径名
%~d1            - 仅将 %1 扩充到⼀个驱动器号
%~p1            - 仅将 %1 扩充到⼀个路径
%~n1            - 仅将 %1 扩充到⼀个⽂件名
%~x1            - 仅将 %1 扩充到⼀个⽂件扩展名
%~s1            - 扩充的路径指含有短名
%~a1            - 将 %1 扩充到⽂件属性
%~t1            - 将 %1 扩充到⽂件的⽇期/时间
%~z1            - 将 %1 扩充到⽂件的⼤⼩
%~$PATH : 1 - 查列在 PATH 环境变量的⽬录,并将 %1
扩充到到的第⼀个完全合格的名称。如果环境
变量名未被定义,或者没有到⽂件,此组合键会
扩充到空字符串
可以组合修定符来取得多重结果:
%~dp1          - 只将 %1 扩展到驱动器号和路径
%~nx1          - 只将 %1 扩展到⽂件名和扩展名
%~dp$PATH:1 - 在列在 PATH 环境变量中的⽬录⾥查 %1,并扩展到到的第⼀个⽂件的驱动器号和路径。
%~ftza1        - 将 %1 扩展到类似 DIR 的输出⾏。
可以参照 call/? 或 for/? 看出每个参数的含意
echo load "%%1" "%%2">
⽣成的⽂件内容为 load "%1" "%2"
批处理⽂件⾥,⽤这个格式把命令⾏参数输出到⽂件
29 if
判断命令
if "%1"=="/a" echo 第⼀个参数是/a
if /i "%1" equ "/a" echo 第⼀个参数是/a
/i 表⽰不区分⼤⼩写,equ 和 == 是⼀样的,其它运算符参见 if/?
if exist c:test.bat echo 存在c:test.bat⽂件
if not exist c:windows (
echo 不存在c:windows⽂件夹
)
if exist c:test.bat (
echo 存在c:test.bat
) else (
echo 不存在c:test.bat
)
30 setlocal 和 endlocal
设置”命令扩展名”和”延缓环境变量扩充”
SETLOCAL ENABLEEXTENSIONS                #启⽤"命令扩展名"
SETLOCAL DISABLEEXTENSIONS              #停⽤"命令扩展名"
SETLOCAL ENABLEDELAYEDEXPANSION          #启⽤"延缓环境变量扩充" SETLOCAL DISABLEDELAYEDEXPANSION        #停⽤"延缓环境变量扩充" ENDLOCAL                                #恢复到使⽤SETLOCAL语句以前的状态
“命令扩展名”默认为启⽤
“延缓环境变量扩充”默认为停⽤
批处理结束系统会⾃动恢复默认值
可以修改注册表以禁⽤"命令扩展名",详见 cmd /? 。所以⽤到"命令扩展名"的程
序,建议在开头和结尾加上 SETLOCAL ENABLEEXTENSIONS 和 ENDLOCAL 语句,以确保程序能在其它系统上正确运⾏
"延缓环境变量扩充"主要⽤于 if 和 for 的符合语句,在 set 的说明⾥有其实⽤例程
31 set
设置变量
引⽤变量可在变量名前后加 % ,即 %变量名%
set                        #显⽰⽬前所有可⽤的变量,包括系统变量和⾃定义的变量
echo %SystemDrive%        #显⽰系统盘盘符。系统变量可以直接引⽤
set p                      #显⽰所有以p开头的变量,要是⼀个也没有就设errorlevel=1
set p=aa1bb1aa2bb2        #设置变量p,并赋值为 = 后⾯的字符串,即aa1bb1aa2bb2 echo %p%                  #显⽰变量p代表的字符串,即aa1bb1aa2bb2
echo %p:~6%                #显⽰变量p中第6个字符以后的所有字符,即aa2bb2
echo %p:~6,3%              #显⽰第6个字符以后的3个字符,即aa2
echo %p:~0,3%              #显⽰前3个字符,即aa1
echo %p:~-2%              #显⽰最后⾯的2个字符,即b2
echo %p:~0,-2%            #显⽰除了最后2个字符以外的其它字符,即aa1bb1aa2b
echo %p:aa=c%              #⽤c替换变量p中所有的aa,即显⽰c1bb1c2bb2
echo %p:aa=%              #将变量p中的所有aa字符串置换为空,即显⽰1bb12bb2
echo %p:*bb=c%            #第⼀个bb及其之前的所有字符被替换为c,即显⽰c1aa2bb2
set p=%p:*bb=c%            #设置变量p,赋值为 %p:*bb=c% ,即c1aa2bb2
set /a p=39                #设置p为数值型变量,值为39
set /a p=39/10            #⽀持运算符,有⼩数时⽤去尾法,39/10=3.9,去尾得3,p=3
set /a p=p/10              #⽤ /a 参数时,在 = 后⾯的变量可以不加%直接引⽤
set /a p=”1&0″            #”与”运算,要加引号。其它⽀持的运算符参见set/?
set p=                    #取消p变量
set /p p=请输⼊
屏幕上显⽰”请输⼊”,并会将输⼊的字符串赋值给变量p
注意这条可以⽤来取代 choice 命令
注意变量在 if 和 for 的复合语句⾥是⼀次性全部替换的,如
@echo off
set p=aaa
if %p%==aaa (
echo %p%
set p=bbb
echo %p%
)
结果将显⽰

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。