2008-08-22 5 views
12

예 : 현재 디렉토리에 바로 가기 s ~ SomeProgram이 있습니다.프로그램과 같은 바로 가기 실행

cmd.exe에는 s을 입력하면 프로그램이 시작됩니다. s를 입력 PowerShell에서

는 제공 :

The term 's' is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try again.

당신이 s.lnk 또는 SomeProgram를 입력하면, 그냥 좋은 프로그램을 실행합니다.

프로그램처럼 바로 가기를 실행하도록 PowerShell을 구성하려면 어떻게해야합니까?

답변

7

내 Vista 시스템에서 목록에 .lnk로 환경 변수 PATHEXT를 설정하지 않으면 S는 lnk 파일을 시작하지 않습니다. 내가 할 때. S는 cmd.exe에서 작동하며 powershell의. \ S를해야합니다.

+1

cmd는 자동으로 현재 디렉토리 "."를 추가합니다. PATH 환경 변수에 추가하십시오. PowerShell은이 문제를 보안 위험으로 간주하여. \ 경로를 명시 적으로 입력해야합니다. linux에서와 마찬가지로 "."을 추가 할 수 있습니다. 귀하의 PATH 환경 변수를 "위험한"행동을 복원하려면 ... – Jaykul

+0

slipsec은 전체 파일 이름을 입력해야한다고 생각합니다. – Jaykul

+0

Jaykul/slipsec, 제가 준 대답은 당신이 추가 할 수 있다고 설명합니다. .lnk를 PATHEXT 환경 변수에 추가 한 다음 .lnk을 추가하지 않고 명령 줄에서 바로 가기를 시작할 수 있습니다. – bruceatk

2

나는 너를 믿을 수 없다. 프로필 스크립트에서 호출하는 스크립트에서 일반적으로 사용되는 명령의 앨리어스를 제거하는 것이 좋습니다.

예 -

설정 - 별칭 순이익 C : \ WINDOWS \

그런 다음 명령 줄에서 짧은 쉽게 typeable 이름을 사용할 수 있습니다 NOTEPAD.EXE.

0

언제든지 탭 완성을 사용하여 "s [Tab]"을 입력하고 Enter 키를 누르면 실행됩니다.

2

하나의 경우 바로 가기가 "s"가 아니며 "s.lnk"입니다. 예 : 당신은 이름이 "t.txt"때 "t"를 입력하여 (메모장 말) 텍스트 파일을 열 수 없습니다 : Technet says

PATHEXT 환경 변수 체크 파일 확장자 을의 목록을 정의 Windows NT에서 을 실행 파일로 검색 할 때 PATHEXT의 기본값은 .COM입니다 .EXE, .BAT; .CMD

여기에 다른 사람에 의해 설명 된대로 소스를 점 할 수 있습니다, 또는 당신은 또한 호출 문자 "&"를 사용할 수 있습니다. 즉, PS는 문자열을 텍스트가 아닌 실행 대상으로 취급합니다. 스크립트에서 더 중요 할 수도 있습니다.

나는 "-r"이 따옴표로 묶인 문자열에 없으며 exe 만 인용한다는 점에 유의해야한다.

& "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe" -r | out-null 
5

PATHEXT 환경 변수의 끝에 ;.LNK을 추가 한 후, 지금도 이전 ./ 표기없이 바로 가기를 실행할 수 있습니다. (Thanks bruceatk)

스티브의 제안에 영감을 받아서 PATH에있는 모든 바로 가기를 자동으로 별명 지정하는 작은 스크립트를 만들려고했는데 (비록 더 간단한 해결책을 고수 하겠지만).

$env:path.Split(';') | 
    Get-ChildItem -filter *.lnk | 
    select @{ Name='Path'; Expression={ $_.FullName } }, 
     @{ Name='Name'; Expression={ [IO.Path]::GetFileNameWithoutExtension($_.Name) } } | 
    where { -not (Get-Alias $_.Name -ea 0) } | 
    foreach { Set-Alias $_.Name $_.Path } 
13

"invoke-item"cmdlet을 사용하여 바로 가기를 호출 할 수도 있습니다. 그래서 예를 들어 당신이 "인터넷 explorer.lnk은"다음 명령을 입력 할 수 있습니다 시작하기를 원한다면 :

invoke-item 'Internet Explorer.lnk' 

을 또는 당신은 또한 별칭을 사용할 수

ii 'internet explorer.lnk' 

또 다른 멋진 것은 당신이 할 수 있다는 것입니다 "invoke-item t.txt"그리고 메모장과 같은 * .txt 파일의 기본 핸들러가 자동으로 열립니다.

참고 응용 프로그램 app.exe를 실행하려면 현재 디렉토리에서 상대 경로 또는 절대 경로를 실제로 지정해야합니다. ". \ app.exe"는 응용 프로그램을 실행하기 위해 입력해야하는 항목입니다.

+1

또한 'ii'를 시도하십시오. 언젠가;) – halr9000

+0

원격 전원 쉘 세션을 시도했습니다. 문제는 UI를 시작하지 않는다는 것입니다. 즉시, 저는 Visual Studio를 시작하려고합니다. RDP를 사용하여 컴퓨터에 연결할 때 해당 프로세스가 표시되지만 UI가 표시되지 않습니다. 어떤 생각? – Royi