PowerShell 입문 강좌의 PowerShell과 Cmd 명령행의 관계는?

4000 단어
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 명령행의 관계
SQLCmd나 Nslookup을 실행하는 프로그램으로 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


또한 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   

          .
01/30/2013  04:54 PM              ..
01/23/2013  12:35 PM              d1
01/23/2013  12:35 PM              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로 대체되지 않을 것이다.장기적으로 보면 누가 알겠는가.나는 단지 선택이 많으면 자유가 많고 가능성이 많다는 것을 알 뿐이다.

좋은 웹페이지 즐겨찾기