ここで「それをしない短い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
、どこからでも電話をかけることができます!
これは、最新バージョンのWindows(Vista +)を使用しており、PowerShellを無効にしたり、.NETフレームワークをアンインストールしていないことを前提としていることに注意してください。つまり、デフォルトのWindowsインストールが機能します。
長い説明と代替案
私が考えることができる最も簡単な方法は、貼り付け(Ctrl+ V)アクションを自動化することです。少なくとも他の回答の1つは既に行っていますが、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でもパイプできます。