gpt4 book ai didi

你应该选择 Powershell 的10个理由(抛弃 cmd)

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章你应该选择 Powershell 的10个理由(抛弃 cmd)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

Powershell 从 Windows7 时代开始内置于 Windows 系统当中,可以看作是微软对 cmd 的大升级,目前两者并存于 Windows 系统中.

首先强烈推荐一个 powershell 学习网站:

powershell在线教程 。

1. powershell 更加 “powerful” 。

微软起“powershell”这个名字虽然有吹牛逼的嫌疑(我以前也这样想),但从事实来看并非如此。powershell 的强大程度分分钟秒杀 Linux 上的 bash,更不要说饱受诟病的 cmd 了。(无意打广告) 。

2. powershell 全面支持面向对象 。

powershell 背后依靠的是一套完整的 .NET 编程体系,其脚本更容易编写且稳健性大大提升。反过来看 cmd,那些完全由各种命令堆砌而成的一条条指令简直就是“小打小闹”.

3. 从 cmd 迁移到 powershell 成本几乎为零 。

如果你对老朋友 cmd 充满情怀,无法舍弃,完全无妨!因为 powershell 可以看作 cmd 的超集,所有的常用命令诸如dir, cd, ipconfig等在 powershell 中都能直接使用。但背后的实现方式是完全不同的,powershell 基于完全的面向对象,它通过给函数和对象“起别名”的方式来支持这些旧的命令.

4. 诱人的管道操作 。

管道操作的灵感来自 Linux 的 shell,但由于 powershell 将一切都包装成为对象,而不是直接处理字符串,因此其管道操作的灵活程度远在 Linux 的 shell 之上.

例如:

?
1
2
3
4
5
6
7
8
9
10
11
12
PS C:\Users\Haley> ls | sort -Descending Name | Format-Table Name,Mode
 
Name              Mode
----              ----
VirtualBox VMs         d-----
Videos             d -r ---
Searches            d -r ---
Saved Games          d -r ---
Pictures            d -r ---
OneDrive            d -r ---
Music             d -r ---
Links             d -r ---

这条命令列出当前路径下的所有文件,按照名称降序排序,并以表格的形式输出,且只显示Name和Mode两个字段.

5. 绝对完备的帮助文档 。

任何函数与对象都能够通过help *命令来查看其帮助文档(准确来说应该是Get-Help函数,这是更加“面向对象”化的命名方式,而help是它的别名),如果看不明白,加上-examples参数会有应用实例,如果仍看不明白,加上-online参数会打开完整的在线帮助文档,不得不佩服,微软的一条龙服务做的很到位.

例如,关于ls的帮助文档如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
PS C:\Users\Haley> help ls
 
名称
   Get-ChildItem
 
摘要
   Gets the items and child items in one or more specified locations.
 
 
语法
   Get-ChildItem [[-Filter] <String>] [-Attributes {ReadOnly | Hidden | System | Directory | Archive | Device | Normal
    | Temporary | SparseFile | ReparsePoint | Compressed | Offline | NotContentIndexed | Encrypted | IntegrityStream |
    NoScrubData}] [-Depth <UInt32>] [-Directory] [-Exclude <String[]>] [-File] [-Force] [-Hidden] [-Include <String[]>
   ] -LiteralPath <String[]> [-Name] [-ReadOnly] [-Recurse] [-System] [-UseTransaction] [<CommonParameters>]
 
   Get-ChildItem [[-Path] <String[]>] [[-Filter] <String>] [-Attributes {ReadOnly | Hidden | System | Directory | Arch
   ive | Device | Normal | Temporary | SparseFile | ReparsePoint | Compressed | Offline | NotContentIndexed | Encrypte
   d | IntegrityStream | NoScrubData}] [-Depth <UInt32>] [-Directory] [-Exclude <String[]>] [-File] [-Force] [-Hidden]
    [-Include <String[]>] [-Name] [-ReadOnly] [-Recurse] [-System] [-UseTransaction] [<CommonParameters>]
 
 
说明
   The Get-ChildItem cmdlet gets the items in one or more specified locations. If the item is a container, it gets the
    items inside the container, known as child items. You can use the Recurse parameter to get items in all child cont
   ainers.
 
   A location can be a file system location, such as a directory, or a location exposed by a different Windows PowerSh
   ell provider, such as a registry hive or a certificate store.
 
 
相关链接
   Online Version: http://go.microsoft.com/fwlink/?LinkId=821580
   Get-Item
   Get-Location
   Get-Process
   Get-PSProvider
 
备注
   若要查看示例,请键入: "get-help Get-ChildItem -examples".
   有关详细信息,请键入: "get-help Get-ChildItem -detailed".
   若要获取技术信息,请键入: "get-help Get-ChildItem -full".
   有关在线帮助,请键入: "get-help Get-ChildItem -online"

6. 支持基本的数学运算和数组操作(加减乘除模),打开就能当计算器用 。

?
1
2
3
4
5
6
7
8
9
10
PS C:\Users\Haley> 1 + 1
2
PS C:\Users\Haley> 3 * 5
15
PS C:\Users\Haley> 0xab
171
PS C:\Users\Haley> 1kb
1024
PS C:\Users\Haley> 1mb / 1kb
1024

7. 良好的脚本编程体验 。

powershell 脚本的语法与高级编程语言非常相近,例如其分支语句if(...){} else{}、循环语句for(...){}与 C 语言别无二致,因而大大提高了编程体验.

8. 拥有丰富的字符串操作对象和函数,全面支持正则表达式 。

字符串处理是 shell 脚本的主要任务,正则表达式的重要性也无需多说.

9. 支持重定向,读写文件易如反掌 。

powershell 原生支持将结果导出到html, csv, xml等文件,也可以通过重定向从文件中读取内容.

例如:

?
1
PS C:\Users\Haley> ls | Select-Object Mode,Name | Export-Csv ~/desktop/test.csv

这样就把当前目录下的所有 文件名-读写权限 保存到了一个 csv 文件中.

10. 支持 Debug 。

虽然这个功能很少用到,但支持 debug 是走向完备编程语言不可或缺的一项功能.

原文链接:http://www.jianshu.com/p/931ae4c34120 。

最后此篇关于你应该选择 Powershell 的10个理由(抛弃 cmd)的文章就讲到这里了,如果你想了解更多关于你应该选择 Powershell 的10个理由(抛弃 cmd)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com