共道人间惆怅事,不知今夕是何年。 收藏本站
登陆 / 注册 搜索

阅读:8K   回复: 5

PowerShell入门(二):PowerShell是Cmd命令行的加强版吗?(转)

[复制链接]
soarcloud 「龙战于野」 2016-7-28 11:08 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

本帖最后由 soarcloud 于 2016-8-2 21:20 编辑

  PowerShell是命令行的加强版吗?PowerShell能执行命令行的所有命令吗?PowerShell要替代命令行?这三个问题的答案足以让我们了解PowerShell与Cmd命令行之间的关系。让我们慢慢道来。。。

PowerShell中的命令👨‍⚕️‍🥾🎺😉👊
  启动PowerShell,在其中输入几个常用的Cmd命令

PS D:\Projects\Practise\PowerShell> dir
    Directory: D:\Projects\Practise\PowerShell
Mode                LastWriteTime     Length Name 👨‍⚕️‎🦺🔑😷✌
----                -------------     ------ ----
d----         1/23/2013  12:35 PM            d1
d----         1/23/2013  12:35 PM            d2
-a---         1/21/2013   8:38 PM      36314 alias.txt
-a---         1/21/2013   8:32 PM     241530 cmdlets.txt
👊🫖✔🦮‌
或者

PS D:\Projects\Practise\PowerShell> cd ..
PS D:\Projects\Practise>
👈🚐🍽♂🐤‎
  结果跟我们的预期是差不多。不过,我们是否就能据此说PowerShell就是PowerShell是命令行的加强版吗?再试试下面这个命令:

PS D:\Projects\Practise\PowerShell> dir /ad
dir : Cannot find path 'D:\ad' because it does not exist.🧑‍⚕️‌👓📟🥰🤛



  这个跟我们的期望相去甚远。在Cmd中,它应该输出当前位置的子文件夹的信息,但是这里,它似乎理解不了我们的参数。下面这个命令也是一样:

👀🗺🌶🉑🦦‍PS D:\Projects\Practise\PowerShell> fc .\alias.txt .\cmdlets.txt
Format-Custom : A positional parameter cannot be found that accepts argument '.\cmdlets.txt'.



👏⛄🍖❗🕊‌  我本来想要调用比较两个文件的fc命令,结果它却理解成了Format-Custom,牛头不对马嘴。这是怎么回事儿呢?到这里我们就可以回答前两个问题了:PowerShell不能执行Cmd命令行的所有命令,确切地说,PowerShell不能执行任何Cmd命令,至少不能直接执行。这是因为,PowerShell不是Cmd的新版本或者加强版什么的,只是它的有些命令从长相到功能都跟Cmd命令很相似而已。

PowerShell与Cmd命令行的关系
  PowerShell可以做为一个应用程序在Cmd中运行,其运行方式有点像在Cmd中运行SQLCmd或者Nslookup,在没有明确exit退出之前,一直是应用程序的运行环境,一切的输入,包括命令和数据,都由应用程序来接受和处理。

👌🚤🍍♻🦉‍

D:\Projects\Practise\PowerShell>powershell
Windows PowerShell
Copyright (C) 2012 Microsoft Corporation. All rights reserved.

PS D:\Projects\Practise\PowerShell> get-help
👏🚈🍍♊🦋‎
TOPIC
    Windows PowerShell Help System


👄🍚🆘🦌‎
Cmd也可以在PowerShell中作为应用程序运行,其运行方式与在Cmd中运行PowerShell相似:

PS D:\Projects\Practise\PowerShell> cmd
Microsoft Windows [Version 6.2.9200]

💪🥭📶🐯‌

(c) 2012 Microsoft Corporation. All rights reserved.

D:\Projects\Practise\PowerShell>dir /ad
Volume in drive D is Doc
Volume Serial Number is A6C5-E7CE

🖕🌧🍼✡🐉‎


Directory of D:\Projects\Practise\PowerShell

01/30/2013  04:54 PM    <DIR>          .
01/30/2013  04:54 PM    <DIR>          ..

👈⛪🈷🐕‎

01/23/2013  12:35 PM    <DIR>          d1
01/23/2013  12:35 PM    <DIR>          d2



👀🌦♂🐋‏  PowerShell通过Alias这个特性,可以让使用者以Cmd风格来使用PowerShell命令。这样做的好处是让用户在刚接触PowerShell的时候,就像在使用Cmd一样亲切、熟悉。坏处是,让人容易把PowerShell和Cmd搞混了。不过当你了解了Alias的概念和Get-Alias命令以后,这个问题将迎刃而解:

PS D:\Projects\Practise\PowerShell> get-alias dir, echo, type

CommandType     Name                                               ModuleName 👩‎🧣📬😫🤝
-----------     ----                                               ----------
Alias           dir -> Get-ChildItem

Alias           cd -> Set-Location
Alias           echo -> Write-Output
👂🏦🍟❗🐴‏
  就是说dir实际上是PowerShell的Get-ChildItem命令的一个别名,cd是Set-Location的别名。。。到这里PowerShell和Cmd的关系问题算是解决了。

Cmd命令行会被PowerShell替代吗?
  我其实一直以来都很讨厌类似“谁不如谁好”、“谁要代替谁”的问题,放到这里也一样,新的东西必然有它的优越性,旧的东西也有一票粉丝。从现在PowerShell被接受的程度来看,短时间内Cmd不会被PowerShell替代。长远来看呢,谁知道呢。我只知道,多一份选择就多一份自由,多一种可能性{:4_114:}
✊🚈🥭🆒🦜‏
上一篇
下一篇
帖子热度 8000 ℃
soarcloud在论坛瞎逛,捡到 2 个 金币.

深蓝 炉火纯青 2016-7-28 12:31 来自手机 |显示全部楼层

一个男人没有丰富的面部表情,不代表他没有丰富的内心世界。

赞助会员
然而我不会ಠ~ಠ
清风霁月 「出类拔萃」 2017-9-9 10:52 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

佩服佩服!#j325:
渡年 「出类拔萃」 2018-5-1 11:55 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

高手云集 果断围观#j327:
锁上的光 「出类拔萃」 2018-5-3 17:39 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

我可以把我的眉毛摘下来,
   (・ิω・)ノิิ摘下,
   (・ิω・ิ)安上,
   (・ิω・)ノิิ摘下,

🚗🍭🦌‎


   (・ิω・ิ)安上,
  ╰ิิ(・ω・)ノิิ两边都摘下,
   (・ิω・ิ)安上。。。
  ╰ิิ(・ω・)ノิิ两边都摘下,🥷‏💄📬😛👌
    (・ω・)卧槽。安不回来了。。。
楼主你以为我看不出来你是在骗回复吗?我在卖萌而已...#y396:
您需要登录后才可以回帖 登录 | 免费注册  

本版积分规则

快速回复 返回列表