Powershell에는 입력 한 명령을 나중에 실행하기 위해 실행하지 않고 기록에 저장하는 방법이 있습니까? 추가 파일을 추가하거나 디렉토리 또는

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)는 명령을 취소하고 지 웁니다 … 필요한 것은 기록을 저장하고 나중에 실행하여 입력을 유지하는 것입니다. 이것에 대한 키 입력이 있습니까?



답변

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

#Get-ChildItem

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


답변

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


답변

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

$VariableName = "Windows Command"

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

Invoke-Expression "$VariableName"

Ping의 예 :

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

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

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