菜单

是时候在 Windows 上放任 cmd 了

2019年3月25日 - LINUX

Windows cmd

缘何命令行如此有用

就算您在网上,或然在种种技能社区混得久了,就必将会掌握,除非您只待在微软的技能栈里面,那么您总是会或多或少地动用各样命令行工具。

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

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

对此跨平台的先后,平日会提供部分实用的命令行工具,由此shell脚本、bat脚本文件就必需了。网络上shell的书、小说都游人如织的,所以精晓起来会相对简单的多,而windows下的bat网上则少有提到。那里不打算写windows
bat 编制程序大全,而是大概对bat做2个总结的入门级的读书。

Windows 上的 cmd 体验

Windows 上,我们有怎么着吗?

哦,我们有 cmd 。

好用吗?

起码在作者眼里,十分难用。偶尔暂且用用幸而,假若急需反复地选用它,我自然尤其伤心。

到了 Windows 10 上幸而,至少那货能全屏了,在 Windows 7
上,它是不能够全屏的(你敢信?)。

不论在写shell,照旧bat,它们的筹划都遵从那样一条规则:一切都是命令。Windows下命令是大小写不灵动的。

有尝试的程序员用哪些?

总不能够坐以待毙吧。

丢掉 Windows ? 毕竟那么多好用的 IDE ,以及各类好用的 GUI 工具,Windows
在那方面包车型地铁遗产依然很丰裕的。

一齐使用 Linux? Linux 在桌面上,被 Windows 甩几百条街,屎一样的 GUI
体验,令人不想行使第①次。

慎选 Mac ? 确实是个好选拔,可是囊中羞涩的话,依旧不要了。

幸好,依照「你想到了一个题材,或然早就有人想到了,并且消除了」之定理,我们的选拔过多。

ConEmu

Cmder

Babun

值得说的是,Babun那货大致逆天,封装了在 Linux
上最常使用的拥有工具(有一种在应用Linux的幻觉),甚至能欢乐地利用 zsh
!缺点是设置包略大,可是考虑到它成效的无敌,暂劳永逸的事体依旧值得去做的。

 

主导命令(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:\Note\windows cmd>REM open the cmd echo

D:\Note\windows cmd>echo hello, windows cmd
hello, windows cmd
hello, windows cmd

D:\Note\windows cmd>REM close the cmd echo
hello, windows cmd
hello, windows cmd

 

对于REM的命令,也是会打到STD里,借使不希望见到,就足以运用@标注。 

 

 

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

 

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]

 

 

 

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

 

越来越多用法,可能参考:https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-xp/bb490909(v%3dtechnet.10)

 

 

goto

语法:goto label

跳转到钦赐的label。假使内定的label不设有,就继续执行下一条命令。假诺找到label,就从label处继续执行。假如程序以符合规律顺序执行到2个label处,而不是通过goto跳转到label,label下的话语依旧以常规顺序执行。

 

图片 1 

 

 

想要明白愈来愈多指令参见:

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-xp/bb490890(v%3dtechnet.10)

 

 

 

 

 

 

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图