在Windows XP上,是否有快捷键可以将剪贴板的内容粘贴到命令提示符窗口中(而不是使用鼠标右键)?

典型的Shift+Insert在这里似乎不起作用。


是的. .但尴尬。链接

alt +空格,e, k <——用于复制和 alt +空格,e, p <-用于粘贴。

这不是一个真正的快捷方式,但只是一个快速访问控制菜单:Alt-space E P

如果你可以使用你的鼠标,右键单击cmd窗口作为粘贴时,我尝试了它。

不是真的编程相关,但我在谷歌上找到了这个,没有直接的键盘快捷键,但使它更快一点。

启用/关闭快速kedit模式。

Open the MS-DOS program, or the command prompt. Right-click the title bar and press Properties. Select the Options tab. Check or un-check the QuickEdit Mode box. Press OK. In the Apply Properties To Shortcut dialog, select the Apply properties to current window only if you wish to change the QuickEdit setting for this session of this window only, or select Modify shortcut that started this window to change the QuickEdit setting for all future invocations of the command prompt, or MS-DOS program.

当quickkedit启用时,复制文本:

单击并将鼠标指针拖动到所需文本上。 按Enter(或右键单击窗口中的任何位置)将文本复制到剪贴板。

在启用quickkedit时粘贴文本:

右键单击窗口中的任意位置。

当quickkedit被禁用时复制文本:

右键单击标题栏,按菜单上的“编辑”,然后按“标记”。 将鼠标拖到要复制的文本上。 按Enter(或右键单击窗口中的任何位置)将文本复制到剪贴板。

在禁用quickkedit时粘贴文本:

右键单击标题栏,按菜单上的编辑,然后按粘贴。

你可以尝试使用Texter并创建一些不太可能的东西,如:

./p,由空格触发并将文本替换为%c

我刚刚测试了一下,它工作得很好。唯一的问题是使用一个罕见的序列,因为Texter不能限制这只是cmd。

可能还有其他类似的工具可以工作,甚至AutoHotKey,在此基础上构建的Texter可以做得更好,但Texter很容易:-)

我个人使用一个小的AutoHotkey脚本来重新映射某些键盘功能,对于我使用的控制台窗口(CMD):

; 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 

谢谢,巴勃罗,这正是我要找的!但是,如果我可以冒昧地稍微改进您的脚本,我建议用以下代码替换您的^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}”是很重要的,以防剪贴板碰巧包含“!”,“+”,“^”或“#”。

注意,它使用StringReplace删除多余的Windows回车字符。谢谢hugov的建议!

谢谢,巴勃罗,为参考AutoHotkey实用程序。 因为我已经安装了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

一个更简单的方法是使用windows powershell而不是cmd。它的工作很好与文本。

我最近发现,命令提示符支持通过鼠标右键单击上下文菜单。你可以在这里找到更多细节:http://www.askdavetaylor.com/copy_paste_within_microsoft_windows_command_prompt.html

在VISTA命令提示下: 单击系统图标 从菜单中选择默认值 在选项组的选项选项卡上 选择“快速编辑模式”、“插入模式”和“自动完成” 我想是“快速编辑模式”让它起作用的。

要在插入点粘贴剪贴板中的任何内容:右键单击。 从命令窗口复制 通过按住鼠标左键并将指针拖过要复制的内容进行选择 选中后,右击 若要在插入点粘贴,请再次右击。

我花了一点时间来弄清楚为什么你的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。

我必须把每个字符都转换成统一码,才能在我的电脑上使用:

#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

不是很简单……

还有一个很棒的开源工具叫做clink,它扩展了cmd的许多特性。其中之一就是能够使用ctrl+v插入文本。

很简单的解决方案可能是控制台2,重新定义键。

在Windows 10中,你可以在命令提示符中启用Ctrl + C和Ctrl + V:

我按照@PabloG的步骤进行了如下操作

去http://www.autohotkey.com/ -下载autohotkey 遵循简单的安装步骤 安装后创建新的*。> new > Autohotkey Script > giveAnyFileName.ahk 右键单击这个文件>编辑 在他的回答中复制粘贴@PabloG给出的autohotkey脚本 保存并关闭 双击文件运行 现在你应该可以在命令提示符中使用Ctrl+v进行粘贴了

理论上,DOS Prompt中的应用程序有自己的剪贴板和快捷方式。从Windows剪贴板导入文本是“额外的”。但是你可以用Alt-Space打开提示窗口的系统菜单,然后按E, P选择编辑,粘贴菜单。而MS可以使用Win-key提供快捷方式。没有机会在DOS应用中使用。

如果你使用剪贴板管理器Ditto(开源,免费),你可以简单地使用快捷方式从Ditto粘贴,它会在CMD中为你粘贴剪贴板。

如果您是Cygwin用户,可以将以下内容附加到~/。bashrc文件:(

stty lnext ^q stop undef start undef

并将以下内容发送到您的~/。inputrc文件:

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

重新启动Cygwin终端。

(注意,我使用大写的C表示复制,因为在大多数控制台中CTRL+ C被分配给break函数。根据个人口味调味。)

而不是“右击”....开始你的会话(一旦你在命令提示窗口)通过按Alt/空格键。这将打开命令提示窗口菜单,您将看到熟悉的带下划线的键盘命令快捷方式,就像Windows GUI一样。

好运!

最简单的方法是复制文本,你想把它粘贴在CMD和打开CMD去“属性”——>“选项”选项卡---->检查(给勾标记)“quickkedit模式”,点击“确定”.....现在你可以从剪贴板粘贴任何文本做右击从你的鼠标。

谢谢你!

这里有一个免费的工具可以在Windows上做这件事。与脚本相比,我更喜欢它,因为它易于设置。它作为一个快速本机应用程序运行,适用于XP及以上,具有配置设置,允许重新映射复制/粘贴/选择键的命令窗口:

另外,我了解开发者。