PowerShell是命令行的加強版嗎?PowerShell能執行命令行的所有命令嗎?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>
結果跟我們的預期是差不多。不過,我們是否就能據此說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
新聞熱點
疑難解答