操作系统

当前位置:永利皇宫463登录 > 操作系统 > 永利皇宫463登录是时候在

永利皇宫463登录是时候在

来源:http://www.makebuLuo.com 作者:永利皇宫463登录 时间:2019-10-05 10:19

不论在写shell,还是bat,它们的设计都遵守这样一条原则:一切都是命令。Windows下命令是大小写不敏感的。

文件夹管理

cd 显示当前目录名或改变当前目录。

md 创建目录。

rd 删除一个目录。

dir 显示目录中的文件和子目录列表。

tree 以图形显示驱动器或路径的文件夹结构。

path 为可执行文件显示或设置一个搜索路径。

xcopy 复制文件和目录树。


为什么命令行如此有用

如果你在网上,或者在各种技术社区混得久了,就一定会知道,除非你只待在微软的技术栈里面,那么你总是会或多或少地使用各种命令行工具。

Linux不必说了,各种命令行。
Mac OS 也不说了,homebrew 有多好用,不用我赘述。

Linux 下安装一个东西,比在 Windows 上方便一百倍(仔细回忆下,在 Windows上安装软件的一般流程)。
当然,我并没有把命令行工具和 GUI 工具对立起来,我不赞同极端主义(只用命令行工具或者只有IDE这一类 GUI 工具),而是喜欢「中庸主义」,物尽其用,各取所需。

控制命令(if-else, for-in-do, goto)

 

文件管理

type 显示文本文件的内容。

copy 将一份或多份文件复制到另一个位置。

del 删除一个或数个文件。

move 移动文件并重命名文件和目录。(Windows XP Home Edition中没有)

ren 重命名文件。

replace 替换文件。

attrib 显示或更改文件属性。

find 搜索字符串。

fc 比较两个文件或两个文件集并显示它们之间的不同


1  echo和 @

回显命令

@                    #关闭单行回显

echooff              #从下一行开始关闭回显

@echooff            #从本行开始关闭回显。一般批处理第一行都是这个

echoon              #从下一行开始打开回显

echo#显示当前是echooff 状态还是echoon 状态

echo.                #输出一个”回车换行”,空白行

#(同echo,echo;echo+echo[echo]echo/echo)

2 errorlevel

echo%errorlevel%

每个命令运行结束,可以用这个命令行格式查看返回码

默认值为0,一般命令执行出错会设errorlevel为1

3 dir

显示文件夹内容

dir#显示当前目录中的文件和子目录

dir/a              #显示当前目录中的文件和子目录,包括隐藏文件和系统文件

dirc: /a:d          #显示 C 盘当前目录中的目录

dirc: /a:-d        #显示 C 盘根目录中的文件

dirc: /b/p        #/b只显示文件名,/p分页显示

dir*.exe /s        #显示当前目录和子目录里所有的.exe文件

4 cd

切换目录

cd#进入根目录

cd#显示当前目录

cd/d d:sdk        #可以同时更改盘符和目录

5 md

创建目录

mdd:abc          #如果 d:a 不存在,将会自动创建中级目录

#如果命令扩展名被停用,则需要键入mkdirabc。

6 rd

删除目录

rdabc              #删除当前目录里的 abc 子目录,要求为空目录

rd/s/q d:temp      #删除 d:temp 文件夹及其子文件夹和文件,/q安静模式

7 del

删除文件

deld:test.txt      #删除指定文件,不能是隐藏、系统、只读文件

del/q/a/f d:temp*.*

删除 d:temp 文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录

del/q/a/f/s d:temp*.*

删除 d:temp 及子文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录

8 ren

重命名命令

rend:temp tmp      #支持对文件夹的重命名

9 cls

清屏

10 type

显示文件内容

typec:boot.ini    #显示指定文件的内容,程序文件一般会显示乱码

type*.txt          #显示当前目录里所有.txt文件的内容

11 copy

拷贝文件

copyc:test.txt d:test.bak

复制 c:test.txt 文件到 d: ,并重命名为 test.bak

copycontest.txt

从屏幕上等待输入,按 Ctrl+Z 结束输入,输入内容存为test.txt文件

con代表屏幕,prn代表打印机,nul代表空设备

copy1.txt +2.txt3.txt

合并1.txt 和2.txt 的内容,保存为3.txt 文件

如果不指定3.txt ,则保存到1.txt

copytest.txt +

复制文件到自己,实际上是修改了文件日期

12 title

设置cmd窗口的标题

title新标题        #可以看到cmd窗口的标题栏变了

13 ver

显示系统版本

14 label和vol

设置卷标

vol#显示卷标

label#显示卷标,同时提示输入新卷标

labelc:system      #设置C盘的卷标为 system

15 pause

暂停命令

16 rem 和 ::

注释命令

注释行不执行操作

17 date和time

日期和时间

date#显示当前日期,并提示输入新日期,按"回车"略过输入

date/t        #只显示当前日期,不提示输入新日期

time#显示当前时间,并提示输入新时间,按"回车"略过输入

time/t        #只显示当前时间,不提示输入新时间

18 goto和 :

跳转命令

:label#行首为:表示该行是标签行,标签行不执行操作

goto label    #跳转到指定的标签那一行


扩展阅读:

Windows 上的 cmd 体验

Windows 上,我们有什么呢?

哦,我们有 cmd 。

好用吗?

至少在我看来,非常难用。偶尔临时用用还好,如果需要频繁地使用它,我肯定异常痛苦。

到了 Windows 10 上还好,至少这货能全屏了,在 Windows 7 上,它是不能全屏的(你敢信?)。

Windows cmd

常用DOS命令:


有品味的程序员用什么?

总不能坐以待毙吧。

抛弃 Windows ? 毕竟那么多好用的 IDE ,以及各种好用的 GUI 工具,Windows 在这方面的遗产还是很丰富的。

完全使用 Linux? Linux 在桌面上,被 Windows 甩几百条街,屎一样的 GUI 体验,让人不想使用第二次。

选择 Mac ? 确实是个好选择,但是囊中羞涩的话,还是不要了。

幸好,根据「你想到了一个问题,可能早就有人想到了,并且解决了」之定理,我们的选择很多。

ConEmu

Cmder

Babun

值得一提的是,Babun这货简直逆天,封装了在 Linux 上最常使用的所有工具(有一种在使用Linux的幻觉),甚至能愉快地使用 zsh !缺点是安装包略大,不过考虑到它功能的强大,一劳永逸的事情还是值得去做的。

  • 这是它的主页(https://babun.github.io/ )
  • 这是它的截屏(https://babun.github.io/screenshots.html )
  • 这是它的下载链接(http://projects.reficio.org/babun/download )

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时所需的参数

 

更多用法,可能参考:

 

 

网络命令

ping 进行网络连接测试、名称解析

ftp 文件传输

net 网络命令集及用户管理

telnet 远程登陆

ipconfig显示、修改TCP/IP设置

msg 给用户发送消息

arp 显示、修改局域网的IP地址-物理地址映射列表


 

系统管理

at 安排在特定日期和时间运行命令和程序

shutdown立即或定时关机或重启

tskill 结束进程

taskkill结束进程(比tskill高级,但WinXPHome版中无该命令)

tasklist显示进程列表(Windows XP Home Edition中没有)

sc 系统服务设置与控制

reg 注册表控制台工具

powercfg控制系统上的电源设置


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]

 

 

 

基本命令(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里,如果不希望看到,就可以使用@标注。 

 

 

goto

语法:goto label

跳转到指定的label。如果指定的label不存在,就继续执行下一条命令。如果找到label,就从label处继续执行。如果程序以正常顺序执行到一个label处,而不是通过goto跳转到label,label下的语句仍旧以正常顺序执行。

 

永利皇宫463登录 1 

 

 

想要了解更多指令参见:

 

 

 

 

 

 

 

对于跨平台的程序,通常会提供一些有用的命令行工具,因此shell脚本、bat脚本文件就必不可少了。网络上shell的书、文章都不少的,所以了解起来会相对容易的多,而windows下的bat网上则少有涉及。这里不打算写windows bat 编程大全,而是简单对bat做一个简单的入门级的学习。

本文由永利皇宫463登录发布于操作系统,转载请注明出处:永利皇宫463登录是时候在

关键词: