国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PowerShell > 正文

PowerShell入門教程之PowerShell和Cmd命令行的關系?

2020-10-29 21:01:17
字體:
來源:轉載
供稿:網(wǎng)友

PowerShell是命令行的加強版嗎?PowerShell能執(zhí)行命令行的所有命令嗎?PowerShell要替代命令行?這三個問題的答案足以讓我們了解PowerShell與Cmd命令行之間的關系。讓我們慢慢道來。。。

PowerShell中的CMD命令

啟動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>

結果跟我們的預期是差不多。不過,我們是否就能據(jù)此說PowerShell就是PowerShell是命令行的加強版嗎?再試試下面這個命令:
復制代碼 代碼如下:

PS D:/Projects/Practise/PowerShell> dir /ad
dir : Cannot find path 'D:/ad' because it does not exist.

這個跟我們的期望相去甚遠。在Cmd中,它應該輸出當前位置的子文件夾的信息,但是這里,它似乎理解不了我們的參數(shù)。下面這個命令也是一樣:

復制代碼 代碼如下:

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不能執(zhí)行Cmd命令行的所有命令,確切地說,PowerShell不能執(zhí)行任何Cmd命令,至少不能直接執(zhí)行。這是因為,PowerShell不是Cmd的新版本或者加強版什么的,只是它的有些命令從長相到功能都跟Cmd命令很相似而已。

PowerShell與Cmd命令行的關系

  PowerShell可以做為一個應用程序在Cmd中運行,其運行方式有點像在Cmd中運行SQLCmd或者Nslookup,在沒有明確exit退出之前,一直是應用程序的運行環(huán)境,一切的輸入,包括命令和數(shù)據(jù),都由應用程序來接受和處理。

復制代碼 代碼如下:

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替代嗎?

  我其實一直以來都很討厭類似“誰不如誰好”、“誰要代替誰”的問題,放到這里也一樣,新的東西必然有它的優(yōu)越性,舊的東西也有一票粉絲。從現(xiàn)在PowerShell被接受的程度來看,短時間內Cmd不會被PowerShell替代。長遠來看呢,誰知道呢。我只知道,多一份選擇就多一份自由,多一種可能性。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 南召县| 体育| 达拉特旗| 蓬安县| 通山县| 新昌县| 纳雍县| 会宁县| 辽阳市| 常山县| 鹿泉市| 广水市| 高雄市| 定边县| 时尚| 荆门市| 曲沃县| 雷波县| 平安县| 龙南县| 开阳县| 富宁县| 永寿县| 泰州市| 土默特左旗| 庆阳市| 郴州市| 江油市| 南皮县| 惠州市| 福鼎市| 怀仁县| 咸阳市| 台山市| 抚松县| 利津县| 东兰县| 上思县| 信阳市| 兴城市| 衡水市|