Powershell에는 입력 한 명령을 나중에 실행하기 위해 실행하지 않고 기록에 저장하는 방법이 있습니까?


4

Powershell에는 길거나 복잡한 명령을 입력 한 후 해당 명령을 기록 버퍼에 커밋하지만 실행할 수없는 방법이 있습니까?

예를 들어 posh-git : directory 내에서 git commit을 입력하기 시작합니다.

git commit -m "Added the library 'ASDF' and did some initial integration into the project" [pause]

그리고 당신이 그 유형을 얻었을 때, 나는 생각하고 있습니다 ... 어, 나는 먼저 다른 일을 저지르기 위해 추가 파일을 추가하거나 디렉토리 또는 무언가를 만드는 것과 같이 무언가를 먼저해야합니다 (분명한 상황에서 Powershell은 자동 생성하고 git이 "커밋을 수정할 수 있음"을 알고 있습니다. 따라서 커밋 메시지를 히스토리 버퍼에 저장하고 싶지는 않지만 실행하지 않고 나중에 추가 파일을 준비하거나 무언가를 수행 한 후 다시 호출하기를 원합니다. 직전.

이 기사 (Windows PowerShell 바로 가기 키 : http://technet.microsoft.com/en-us/library/ee176868.aspx )에 따르면이 작업을 수행 할 때 키 입력이없는 것 같습니다.

ESC 키 (및 Ctrl + C)는 명령을 취소하고 지 웁니다 ... 필요한 것은 기록을 저장하고 나중에 실행하여 입력을 유지하는 것입니다. 이것에 대한 키 입력이 있습니까?

답변:


10

다음과 같이 명령 앞에 항상 주석 태그를 넣을 수 있습니다.

#Get-ChildItem

당신이 실행 공격 명령까지 화살표 준비가되었을 때 그리고 Home다음 Del, 다음 Enter실행합니다.


꽤 영리합니다. 제안 해 주셔서 감사합니다!
enorl76 2016 년

네. 이 트릭을 영원히 사용했습니다. 나는 또한 실제로 내년부터 역사를 다시 읽을 수 있기 때문에 내 oneliners를 이런 식으로 언급합니다 (bash).
bgStack15

1

많은 명령이 -whatif나중에 추가하고 제거 할 수 있는 매개 변수를 지원합니다 . 그러나 나는 의견 아이디어가 더 좋다고 말해야합니다.


whatif는 좋지만 모든 명령이 지원하는 것은 아닙니다.
Keltari

1

일부 호출로 재생 한 후에도 작동하는 것으로 보입니다.

$VariableName = "Windows Command"

그런 다음 다음을 실행하십시오.

Invoke-Expression "$VariableName"

Ping의 예 :

여기에 이미지 설명을 입력하십시오

또한 동일한 방식으로 PowerShell 표현식을 사용할 수있었습니다.

PS H :> $ Outlooks = "Get-Process -Name Outlook-Verbose | fl StartTime, Threads"PS H :> 호출 표현 "$ Outlooks"

본질적으로, 나는 무슨 일이 일어나고 있는지 믿습니다. 우리는 첫 번째 변수에 대한 문자열을 생성하고 (정확하게 보이는 모양 그대로), ""안에 변수를 호출하면 인터프리터가 변수를 확장하여 변수를 확장시킵니다. 올바른 명령을 호출합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.