2017-01-19 4 views
3

가능합니까? this blog을 시도했지만 작동하지 않습니다. cmd.exe에서 사용되는 매크로가 약 50 개 정도 인 doskey 매크로가 있습니다. 내가 doskey /macros:powershell.exe로 나열하면 그들은 '그러나doskey 매크로를 사용하여 PowerShell에서 별칭을 설정하십시오

blah : The term 'blah' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

:

doskey /exename=powershell.exe /macrofile=C:\macrofile.txt 

또는

doskey /exename=powershell.exe blah=echo blah 

그러나 명령 blah 시도에 오류가 있습니다 :

내가 좋아하는 뭔가를 실행 거기 모두 다.

PowerShell에서 이러한 매크로에 매핑 할 수있는 50 개의 별칭을 만들 수있는 방법이 있습니까? Set-Alias cmdlet은 명령이 단순한 PowerShell cmdlet을 호출하는 것보다 복잡하기 때문에별로 도움이되지 않습니다. .ps1 스크립트에서 기능을 만드는 방법을 제안하는 게시물이 있지만 파일의 50 개 매크로 각각에 대해 50 개의 다른 함수를 수동으로 작성하는 경우에만 작동합니다. 또한 cmd의 매크로 파일과이를 함수로 변환하는 PowerShell 스크립트의 두 파일을 유지 관리해야합니다.

+0

"하지만 작동하지 않습니다."- 더 구체적으로 설명 할 수 있습니까? –

+0

감사합니다. 편집 된 질문에 세부 정보가 포함됩니다. –

+0

'PSReadLine' 모듈을 사용하지 않으면이 방법이 효과가 있다고 생각합니다. –

답변

2

PSReadLine 모듈 (PowerShell 5.0 이상과 함께 제공됨)은 네이티브 콘솔 입력 기능에 의존하는 doskey과 호환되지 않습니다. Windows 10/PowerShell 5에서 테스트했습니다 :

PS C:\> Remove-Module PSReadLine 
PS C:\> doskey /exename=powershell.exe g=Get-Location 
PS C:\> g 

Path 
---- 
C:\ 
+0

확인 됨! 고마워! Powershell 3.0에도 'PsReadLine'모듈이있는 것으로 보입니다. 나는이 모듈을 제거하지 않고 'powershell -version 2.0'과 'powershell -version 3.0'을 시험해 보았는데, doskey 매크로는 2.0에서는 작동했지만 3.0에서는 작동하지 않았다. –

+1

FWIW,'doskey'와'PSReadline' 모듈의 네이티브 콘솔 입력 기능을 고려해 볼 가치가 있습니다. 나는 추가로 얻은 기능이 전환의 가치가 있다고 생각한다. –