문제

예:바로가기가 있습니다 s 에게 SomeProgram 현재 디렉토리에 있습니다.

~ 안에 cmd.exe, 입력할 수 있습니다. s 그러면 프로그램이 시작됩니다.

PowerShell에서 다음을 입력합니다. s 다음을 제공합니다:

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을 어떻게 구성할 수 있나요?

도움이 되었습니까?

해결책

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

다른 팁

"invoke-item" cmdlet을 사용하여 바로가기를 호출할 수도 있습니다.예를 들어 "internet explorer.lnk"를 시작하려면 다음 명령을 입력하면 됩니다.

invoke-item 'Internet Explorer.lnk'

또는 별칭을 사용할 수도 있습니다.

ii 'internet explorer.lnk'

또 다른 멋진 점은 "invoke-item t.txt"를 수행하면 메모장과 같이 *.txt 파일에 대한 기본 처리기가 무엇이든 자동으로 열 수 있다는 것입니다.

메모 현재 디렉터리에서 app.exe라는 응용 프로그램을 실행하려면 실제로 실행할 경로(상대 또는 절대 경로)를 지정해야 합니다.".\app.exe"는 응용 프로그램을 실행하기 위해 입력해야 하는 것입니다.

추가한 후 ;.LNK 내 끝까지 PATHEXT 환경 변수를 사용하여 이제 이전 작업 없이도 바로가기를 실행할 수 있습니다. ./ 표기법.(bruceatk님, 감사합니다!)

나는 또한 내 컴퓨터의 모든 단축키에 자동으로 별칭을 지정하는 작은 스크립트를 만들라는 Steven의 제안에 영감을 받았습니다. 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 }

나는 당신이 할 수 있다고 믿지 않습니다.프로필 스크립트에서 호출하는 스크립트에서 일반적으로 사용되는 명령에 별칭을 지정하는 것이 더 나을 수도 있습니다.

예 -

Set-Alias ​​np c:\windows otepad.exe

그러면 명령줄에서 짧고 쉽게 입력할 수 있는 이름을 사용할 수 있습니다.

우선, 바로가기는 "s"가 아니라 "s.lnk"입니다.예:이름이 "t.txt"인 경우 "t"를 입력하여 텍스트 파일(메모장 등)을 열 수 없습니다. :) Technet 라고

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

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top