인수가 중간에 있는 PowerShell 별칭을 작성하려면 어떻게 해야 합니까?
특정 매개 변수로 MinGW의 g++ 실행 파일을 실행하기 위해 Windows PowerShell 별칭을 설정하려고 합니다.그러나 이러한 매개 변수는 파일 이름과 다른 인수 뒤에 와야 합니다.저는 기능을 설정하는 등의 번거로움을 겪고 싶지 않습니다.간단히 다음과 같은 말을 할 수 있는 방법이 있습니까?
alias mybuild="g++ {args} -lib1 -lib2 ..."
아니면 그 노선들을 따라 뭔가?PowerShell에 익숙하지 않아서 솔루션을 찾는 데 어려움을 겪고 있습니다.누구라도 있나요?
당신은 로만이 언급한 것처럼 가명이 아닌 함수를 사용하기를 원합니다.이와 같은 것:
function mybuild { g++ $args -lib1 -lib2 ... }
다음은 간단한 예입니다.
PS> function docmd { cmd /c $args there }
PS> docmd echo hello
hello there
PS>
또한 PowerShell을 실행할 때마다 프로필을 사용할 수 있도록 프로필에 저장할 수도 있습니다.프로필 파일의 이름은 다음에 포함되어 있습니다.$profile
.
그런 방법은 기본 제공되지 않습니다.IMHO, 래퍼 기능이 가장 좋은 방법입니다.하지만 몇 가지 해결 방법이 발명되었다는 것은 알고 있습니다. 예를 들어 다음과 같습니다.
함수를 빌드하고 별칭으로 저장한 후 나중에 전체를 프로필에 유지하려면 다음을 사용합니다.
$g=[guid]::NewGuid();
echo "function G$g { COMMANDS }; New-Alias -Force ALIAS G$g">>$profile
당신이 대체한 곳ALIAS
당신이 원하는 가명으로COMMANDS
명령 또는 실행할 명령 문자열을 사용합니다.
물론 그렇게 하는 대신 다음과 같은 방법으로 위의 별칭을 만들 수 있습니다.
echo 'function myAlias {
$g=[guid]::NewGuid();
$alias = $args[0]; $commands = $args[1]
echo "function G$g { $commands }; New-Alias -Force $alias G$g">>$profile
}; New-Alias alias myAlias'>>$profile
두 번째 코드 블록을 PowerShell에 붙여넣고 PowerShell을 다시 시작한 후 모든 재귀(에일리어스의 별칭 지정 등)로 인해 뇌가 뒤집힐 경우를 대비하여 간단한 사용 예는 다음과 같습니다.
alias myEcho 'echo $args[0]'
또는 인수 없음:
alias myLs 'ls D:\MyFolder'
만약 당신이 아직 프로필이 없다면.
아직 프로필이 없는 경우 위의 방법은 실패합니다!이 경우, 사용New-Item -type file -path $profile -force
이 대답에서
다음은 호출 방법에 따라 다른 작업을 수행하는 샘플 함수입니다.
Function Do-Something {
[CmdletBinding()]
[Alias('DOIT')]
Param(
[string] $option1,
[string] $option2,
[int] $option3)
#$MyInvocation|select *|FL
If ($MyInvocation.InvocationName -eq 'DOIT'){write-host "You told me to do it...so i did!" -ForegroundColor Yellow}
Else {Write-Host "you were boring and said do something..." -ForegroundColor Green}
}
'필터'를 만드는 것도 하나의 선택사항이며, 기능에 대한 더 가벼운 대안입니다.파이프라인의 각 요소를 처리하여 $_자동 변수를 할당합니다.예를 들어, 다음과 같습니다.
filter test { Write-Warning "$args $_" }
'foo','bar' | test 'This is'
반환:
WARNING: This is foo
WARNING: This is bar
언급URL : https://stackoverflow.com/questions/4166370/how-can-i-write-a-powershell-alias-with-arguments-in-the-middle
'programing' 카테고리의 다른 글
Postgre에서 타임스탬프를 자동으로 업데이트하려면 어떻게 합니까?SQL (0) | 2023.05.07 |
---|---|
VBA(excel)에서 정규식 일치 항목 반환 (0) | 2023.05.07 |
mongodb 인덱스 생성 작업 상태 (0) | 2023.05.07 |
에서 이름으로 워크시트를 가져오는 방법.NET? (0) | 2023.05.07 |
푸시 후 git commit 메시지 변경(원격에서 끌어온 사람이 없는 경우) (0) | 2023.05.07 |