다음 은 클립 보드를 클로버하지 않고 올바르게 작동 하는 짧은 Windows 프로그램입니다 . PowerShell에 적합해야하며 시간이되면이 답변을 업데이트 할 수도 있지만 해당 프로그램을 직접 사용할 수도 있습니다.
그렇다면 PowerShell은 어떻습니까? 다른 응용 프로그램을 설치할 필요가 없습니다. 불행히도, 당신 은 어딘가에 스크립트 파일을 만들어야합니다 PATH
...
사용할 수있는 짧은 버전
ShowInNotepad.bat
다음 내용 으로 배치 파일 (예 :)을 만들어 PATH
어딘가에 배치하면 :
@echo off
clip
powershell -Command $process = Start-Process -PassThru notepad;$SW_SHOW = 5;$sig = '[DllImport("""user32.dll""")] public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);';Add-Type -MemberDefinition $sig -name NativeMethods -namespace Win32;[Win32.NativeMethods]::ShowWindow($process.Id, $SW_SHOW) ^| Out-Null;Add-Type -AssemblyName System.Windows.Forms;[System.Windows.Forms.SendKeys]::SendWait('^^V');
그러면 echo blah | ShowInNotepad
어디서나 전화 할 수 있습니다!
이 점에 유의 않습니다 당신이 윈도우 (비스타 +)의 최근 틱 버전을 사용한다고 가정하지 장애인 PowerShell을 가지고 또는 .NET 프레임 워크를 제거. 즉, 기본 Windows 설치가 작동합니다.
긴 설명과 대안
내가 생각할 수있는 가장 쉬운 방법은 붙여 넣기 ( Ctrl+ V) 작업 을 자동화하는 것입니다 . 적어도 하나의 다른 답변이 이미 수행 중이지만 AHK를 사용하는 답변은 잠겨있는 회사 환경에서 PowerShell을 사용하는 것이 더 좋습니다.
스크립트로 시작합시다.
#start notepad, get process object (to get pid later)
$process = Start-Process -PassThru notepad;
# activate Notepad window
# based on http://stackoverflow.com/a/4994020/1030702
# SW_SHOW activates and shows a window http://msdn.microsoft.com/en-us/library/windows/desktop/ms633548%28v=vs.85%29.aspx
$SW_SHOW = 5;
$sig = '[DllImport("user32.dll")] public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);';
Add-Type -MemberDefinition $sig -name NativeMethods -namespace Win32;
[Win32.NativeMethods]::ShowWindow($process.Id, $SW_SHOW) | Out-Null;
# send a "Ctrl+V" keystroke to the active window
# from http://stackoverflow.com/a/17851491/1030702
Add-Type -AssemblyName System.Windows.Forms;
[System.Windows.Forms.SendKeys]::SendWait('^V');
꽤 간단하므로 이미 언급 한 것보다 스크립트를 설명하는 것을 귀찮게하지 않을 것입니다.
용법
이를 사용하려면 스크립트를 .ps1
파일 (예 :)에 배치하고 스크립트를 ShowInNotepad.ps1
어딘가에 배치 PATH
한 다음 powershell ShowInNotepad.ps1
클립 보드에 표시 할 텍스트를 배치 한 후 호출 하면됩니다.
예:
echo blah | clip && powershell ShowInNotepad.ps1
불행히도 때때로 PowerShell 스크립트 실행이 어려울 수 있습니다 (실행 정책 및 모두). 따라서이 스크립트를 명령 프롬프트에서 직접 호출하거나 배치 파일에 넣을 수있는 하나의 라이너로 압축했습니다.
powershell -Command $process = Start-Process -PassThru notepad;$SW_SHOW = 5;$sig = '[DllImport("""user32.dll""")] public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);';Add-Type -MemberDefinition $sig -name NativeMethods -namespace Win32;[Win32.NativeMethods]::ShowWindow($process.Id, $SW_SHOW) ^| Out-Null;Add-Type -AssemblyName System.Windows.Forms;[System.Windows.Forms.SendKeys]::SendWait('^^V');
ShowInNotepad.bat
다음 내용 으로 배치 파일 (예 :)을 만들어 PATH
어딘가에 배치하면 :
@echo off
clip
powershell -Command $process = Start-Process -PassThru notepad;$SW_SHOW = 5;$sig = '[DllImport("""user32.dll""")] public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);';Add-Type -MemberDefinition $sig -name NativeMethods -namespace Win32;[Win32.NativeMethods]::ShowWindow($process.Id, $SW_SHOW) ^| Out-Null;Add-Type -AssemblyName System.Windows.Forms;[System.Windows.Forms.SendKeys]::SendWait('^^V');
그러면 echo blah | ShowInNotepad
어디서나 전화 할 수 있습니다!
more
Windows에서도 파이프 할 수 있습니다.