2011-01-20 1 views
2

나는 최근에 cmd.exe에서 PowerShell로 전환 했으므로, 익숙하지 않은 방법으로 작은 것을 수행하는 것이 편리하다는 것을 알게되었습니다. cmd을 호출하면됩니다. 예를 들어,이 목록에 '노출'파일이 잘 작동해야 할 일 :cmd.exe 기본 제공 함수를 실행하기위한 PowerShell 별칭 구문?

PS> cmd /c dir /b 
dir1 
dir2 
file1.txt 

나는이 별칭을하고 싶습니다하지만 올바른 구문을 알아낼 수 없습니다. 지금까지 내가 시도 :

PS> Set-Alias dirb cmd /c dir /b  # error (alias not created) 
PS> Set-Alias dirb "cmd /c dir /b"  # fail (alias doesn't work) 
PS> Set-Alias dirb "cmd `"/c dir /b`"" # fail (alias doesn't work) 

어떤 제안? 내가 내장 된 호출 cmd.exe 명령 (예 : dir)에 대한 일반적인 해결책을 찾고 있어요. 또한 PowerShell cmdlet을 사용하여 올바른 방법으로 출력물을 출력하는 방법을 알고 싶지만, 지금은 그다지 관심사가 아닙니다. 이 질문은 별칭에서 cmd.exe을 호출하기위한 올바른 구문에 대한 것입니다.

+0

ls 내가 PowerShell에서 동일'DIR 생각 단순히 | foreach {$ _. name} ' –

+3

'dir -Name'도 순수한 PowerShell입니다. –

+0

@Roman, 순수한 포 쉬 응답에 감사드립니다! – jwfearn

답변

3

내가 원하는 것은 별칭이 아닌 기능이라고 생각합니다. 예를 들어 :이 PS 프롬프트에서

function dirb { 
    cmd /c dir $args[0] /b 
    } 

, 실행 메모장 $ 프로필, 프로필에 붙여 넣습니다 그리고 당신은 PS 콘솔을 열 때 그것은 자동으로로드됩니다 그리고 당신은이 작업을 수행 할 수 있습니다

dirb에 c : \ somedir

기능에 대한 자세한 내용은 get-help about_functions를 참조하십시오.

+1

잘 작동합니다.'$ args [0]'대신'@ args'를 사용했기 때문에, 내 함수는 여러 인수를 사용할 수 있습니다. – jwfearn

4

별칭은 이러한 종류의 작업을 위해 설계되지 않았습니다. 별명은 명령의 또 다른 이름입니다. 함수를 대신 사용하십시오.

function dirb { cmd /c dir /b } 
0

PowerShell의 별칭은 불행히도 매개 변수를 사용하지 않습니다.이 기능을 정의해야합니다. 자세한 내용을 보려면

+0

감사합니다. PS 별칭이 매개 변수를 사용하지 않는다는 것을 알고 있지만 별칭이 매크로와 같을 것이라고 기대했습니다. 대체 텍스트에 공백이 포함될 수있는 순수 텍스트 대체입니다. 나는 그들이 '매크로'가 아니라 '별칭'이라고 불리는 이유라고 생각합니다. – jwfearn

0

왜 powershell을 사용하여 명령 프롬프트를여시겠습니까? 그 목적을 이겨내는 것 같습니다.

내가 파일을 나열하는 것을 선호 별칭은

+2

다음과 같은 이유가있을 수 있습니다. [PS] C : \> 측정 명령 {ls c : \ windows -recurse -name} | 총 시간을 선택하십시오 | 피트 TotalSeconds 를 -auto ------------ 46.8366258 [PS] C : \> 측정 커맨드에 cmd {/ C DIR C : \ WINDOWS/B/s} | 총 시간을 선택하십시오 | ft -auto 총계 ------------ 5.3308489 – mjolinor

+1

많은 이유가 있습니다. 그리고이 질문에서'cmd'는 모든 원시 응용 프로그램의 예일뿐입니다. –

관련 문제