web-dev-qa-db-ja.com

クリップボードの内容をコマンドプロンプトウィンドウに貼り付けるためのキーボードショットカット(Win XP)

クリップボードの内容をWindowsのコマンドプロンプトウィンドウに貼り付けるためのキーボードショートカットはありますかXP(マウスの右ボタンを使用する代わりに)。

典型的な Shift+Insert ここでは動作しないようです。

300
sme

私は個人的に私が使用するコンソールウィンドウ(CMD)のために、特定のキーボード機能を再マッピングするために AutoHotkey スクリプトを少し使います:

; Redefine only when the active window is a console window 
#IfWinActive ahk_class ConsoleWindowClass

; Close Command Window with Ctrl+w
$^w::
WinGetTitle sTitle
If (InStr(sTitle, "-")=0) { 
    Send EXIT{Enter}
} else {
    Send ^w
}

return 


; Ctrl+up / Down to scroll command window back and forward
^Up::
Send {WheelUp}
return

^Down::
Send {WheelDown}
return


; Paste in command window
^V::
; Spanish menu (Editar->Pegar, I suppose English version is the same, Edit->Paste)
Send !{Space}ep
return

#IfWinActive 
161
PabloG

はい、しかし厄介です。 リンク

alt + Space、 e、 k < - コピーと
alt + Space、 e、 p < - 貼り付け用。

424
Nescio

あまりプログラミング関連ではありませんが、Googleで これ を見つけました、キーボードショートカットはありません、しかしそれは少し早くなります。

QuickEditモードを有効または無効にするには:

  1. MS-DOSプログラム、またはコマンドプロンプトを開きます。
  2. タイトルバーを右クリックして[プロパティ]を押します。
  3. [オプション]タブをクリックします。
  4. [クイック編集モード]ボックスをオンまたはオフにします。
  5. OKを押してください。
  6. このウィンドウのこのセッションのQuickEdit設定のみを変更する場合は、[プロパティをショートカットに適用]ダイアログボックスで、[現在のウィンドウにプロパティを適用]を選択するか、またはコマンドプロンプト、またはMS-DOSプログラム。

QuickEdit

QuickEditが有効になっているときにテキストをコピーするには:

  1. マウスポインタをクリックして目的のテキストの上にドラッグします。
  2. Enterキーを押す(またはウィンドウ内の任意の場所を右クリックする)と、テキストがクリップボードにコピーされます。

QuickEditが有効になっているときにテキストを貼り付けるには:

  1. ウィンドウ内の任意の場所を右クリックします。

QuickEditが無効になっているときにテキストをコピーするには:

  1. タイトルバーを右クリックして、メニューの[編集]を押し、[マーク]を押します。
  2. コピーしたいテキストの上にマウスをドラッグします。
  3. Enterキーを押す(またはウィンドウ内の任意の場所を右クリックする)と、テキストがクリップボードにコピーされます。

QuickEditが無効なときにテキストを貼り付けるには:

  1. タイトルバーを右クリックして、メニューの[編集]を押し、[貼り付け]を押します。
136
Rob Cooper

ありがとうパブロ、ちょうど私が探していたもの!しかし、スクリプトを少しだけ改善する自由を取ることができるのであれば、^ Vマクロを次のように置き換えることをお勧めします。

; Use backslash instead of backtick (yes, I am a C++ programmer).
#EscapeChar \

; Paste in command window.
^V::
StringReplace clipboard2, clipboard, \r\n, \n, All
SendInput {Raw}%clipboard2%
return

SendInputを使用する利点は、

  • それは貼り付けをするために「Alt + Space E P」メニュー項目を持つコマンドプロンプトシステムメニューに頼りません(英語とスペイン語のために働きますが、すべての言語のために働きません)。
  • メニューが作成され破壊されたときに厄介なちらつきが発生するのを防ぎます。

クリップボードに "!"、 "+"、 "^"、または "#"が含まれている場合に備えて、SendInputコマンドに "{Raw}"を含めることが重要です。

注意してください、それは余分なWindowsキャリッジリターン文字を削除するためにStringReplaceを使います。その提案をありがとうhugov!

34
Huw Walters

clink と呼ばれる素晴らしいオープンソースツールもあります。これはcmdを多くの機能で拡張したものです。そのうちの1つは、テキストを挿入するためにCtrl + Vキーを使用できることです。

18
sibbl
14

ここで はWindows上でそれをする無料のツールです。セットアップが簡単なので、スクリプトよりも好きです。これは高速のネイティブアプリとして動作し、XP以上で動作し、コマンドウィンドウのコピー/貼り付け/選択キーを再マップできる設定を持っています。

enter image description here

さらに私は開発者を知っています。

8
c00000fd

AutoHotkeyユーティリティについて言及してくれてありがとう、Pablo。使用しているLaunchyをインストールしているので Alt+Space 私はそれを修正する必要がありましたが追加する必要がありました Shift 示されているようにキー:

; Paste in command window
^V::
; Spanish menu (Editar->Pegar, I suppose English version is the same, Edit->Paste)
Send !+{Space}ep
return
4
Maksym Kozlenko

最も簡単な方法は、cmdに貼り付けたいテキストをコピーしてcmd goto "properties" ---> "option"タブ----> "quickEdit mode"をチェックしてクリックすることです。 [OK]をクリックしてください。これで、クリップボードから任意のテキストを貼り付けることができますurマウスから右クリック

ありがとうございました..

4
Vignesh Viper

理論的には、DOSプロンプトのアプリケーションには独自のクリップボードとショートカットがあります。 Windowsのクリップボードからテキストをインポートするのは "追加"です。 Alt-Spaceを使用してプロンプトウィンドウのシステムメニューを開き、E、Pを押して編集、貼り付けメニューを選択することができます。しかし、MSはWinキーを使ってショートカットを提供することができます。 DOSアプリケーションで使用される可能性はありません。

3
i486

これは実際のショートカットではなく、コントロールメニューへの素早いアクセスです。Alt-space E P

マウスを使用できる場合は、cmdウィンドウを右クリックしてみて、貼り付けとして機能します。

3
jop

クリップボードマネージャ Ditto (オープンソース、無償)を使用すると、ショートカットを使用してDittoから貼り付けることができ、クリップボードに貼り付けられます。あなたのためのCMD。

enter image description here

2

あなたの AutoHotkey スクリプトがなぜ私と一緒に動かないのか理解するのに少し時間がかかりました:

; Use backslash instead of backtick (yes, I am a C++ programmer).
#EscapeChar \

; Paste in command window.
^V::
StringReplace clipboard2, clipboard, \r\n, \n, All
SendInput {Raw}%clipboard2%
return

実際、それはキーストロークに、そして結果的にキーボードレイアウトに依存しています!ですから、私のようにAZERTYキーボードしか持っていないのは残念なことですが、あなたの提案はうまくいきません。さらに悪いことに、SendInputメソッドを置き換えたり、環境を修正してこれを修正する簡単な方法は見つかりませんでした。たとえば、SendInput "1"は数字1を送信しません。

私のコンピューターで動作させるには、すべての文字をUnicodeに変換する必要がありました。

#EscapeChar \

; Paste in command window.
^V::
StringReplace clipboard2, clipboard, \r\n, \n, All
clipboard3 := ""
Loop {
    if (a_index>strlen(clipboard2))
     break 
    char_asc := Asc(SubStr(clipboard2, a_Index, 1))   
    if (char_asc > 127 and char_asc < 256)
     add_zero := "0"
    else
     add_zero := "" 
    clipboard3 :=  clipboard3  . "{Asc " .  add_zero . char_asc . "}"
}
SendInput %clipboard3%
return

それほど単純ではありません...

2
Djee

あなたがCygwinユーザーであれば、〜/ .bashrcファイルに以下を追加することができます。

stty lnext ^q stop undef start undef

そして、〜/ .inputrcファイルには以下のものがあります。

"\C-v": paste-from-clipboard
"\C-C": copy-to-clipboard

Cygwin端末を再起動してください。

(注:ほとんどのコンソールではCTRL + cがbreak関数に割り当てられているので、コピーには大文字のCを使用しました。好みの季節です。)

出典

1
U007D

「右クリック」する代わりに、Alt/Spaceキーを押してセッションを開始してください(プロンプトウィンドウに入ったら)。これにより、コマンドプロンプトウィンドウのメニューが開き、Windows GUIの場合と同様に、よく知られている下線付きのキーボードコマンドショートカットが表示されます。

がんばろう!

1
Michael Scott

私は最近、コマンドプロンプトがマウスの右クリックによるコンテキストメニューをサポートしていることを発見しました。あなたはここでより多くの詳細を見つけることができます: http://www.askdavetaylor.com/copy_paste_within_Microsoft_windows_command_Prompt.html

1
Denis Vuyka

もっと簡単な方法はcmdの代わりにwindows powershellを使うことです。それはtexterとうまく働きます。

1
ilcredo

あなたは Texter を使って試してみることができます。

./p、スペースが原因でテキストが%cに置き換えられた

私はちょうどそれをテストしました、そしてそれはうまく働きます。 Texterがこれをcmdだけに制限することはできないので、唯一の問題はまれなシーケンスを使うことです。

おそらくこの種の他の有用なユーティリティがあり、Texterが構築されている AutoHotKey でさえそれをもっとうまくやることができますが、Texterは簡単です: - )

1
njsf

非常に簡単な解決策は コンソール2 かもしれません、キーを再定義すればあなたは行き​​ます。

1
BG Bruno

私は次のように@ PabloGの手順に従いました

  1. goto http://www.autohotkey.com/ - オートショットをダウンロードする
  2. 簡単なインストール手順に従う
  3. インストール後、次のように新しい* .ahkファイルを作成します。デスクトップを右クリック> new> Autohotkey Script> giveAnyFileName.ahk
  4. このファイルを右クリック>編集
  5. 彼の答えに@PabloGによって与えられたオートペーストの自動貼り付けスクリプトをコピーする
  6. 保存して閉じます
  7. 実行するファイルをダブルクリック
  8. これで完了です Ctrl+v コマンドプロンプトでの貼り付け
1
Pravin Waychal