键盘快捷键在 CMD 中选择当前控制台输入

键盘快捷键在 CMD 中选择当前控制台输入

是否有一个键盘快捷键可以选择 CMD 中当前正在输入的所有内容(抱歉,我忘记了正确的术语是什么)?本文来自HTG说 Ctrl+A 应该可以完成这个工作,但是对我来说,它只是输出:

^A

在此过程中,我还想知道如何将相同的输入写入文件。例如...

dir B:\Users\ThisUser >> File.txt

...将命令的输出打印dir到文件而不是命令本身。

答案1

您不能在命令提示符中使用 CTRL 键,它只会导致出现^。因此,命令提示符中没有“全选”键盘快捷键。

反而,右键单击标题栏(不是控制台窗口),并且有一个不同的菜单;转到“编辑”和“全选”。

在此处输入图片描述

另外,您还可以使用伪键盘快捷键,方法是先右键单击标题栏,然后按 E 键,再按 S 键,以快捷方式浏览菜单。您会注意到“编辑”中的 E 带有下划线,而“全选”中的 S 也带有下划线。这就是下划线的含义,按下键盘上的该键即可选择菜单项。

它的缺点是它不只是选择当前行,而是选择整个控制台窗口。

复制整个窗口后,您可以将此文本复制并粘贴到文本编辑器中,然后将所需内容复制并粘贴回命令提示符中。

不幸的是,这是命令提示符的限制,因为一个简单的“选择当前行全部”键盘快捷键肯定非常有用!!


向上和向下键盘快捷键

但是,值得注意的是,如果您想返回到在同一控制台窗口中输入的上一行,可以使用键盘上的“UP”和“DOWN”箭头键。这是 Windows 命令提示符和 Linux 控制台的快捷方式,这是我在 Linux ssh 中编码时经常使用的非常有用的技巧。

例如,假设这是你的控制台:

C:\> cd users<br>
C:\Users> cd myusername<br>
C:\Users\MyUsername> cd documents<br>
C:\Users\MyUsername\Documents> _

如果我现在按一次“向上”键,它将在当前控制台行中显示以下内容:

C:\Users\MyUsername\Documents> cd documents

如果我现在按两次“UP”,它将在当前控制台行中显示以下内容:

C:\Users\MyUsername\Documents> cd myusername

Windows 10:在命令提示符中启用 CTRL 快捷键

Windows 7 没有此选项,但 Windows 10 有!现在您可以在 Windows 10 中启用CTRL + CCTRL + V复制和粘贴。我希望您也能够CTRL + A选择全部。

您可以这样做:

  1. 右键单击标题栏
  2. 选择“属性”

在此处输入图片描述

  1. 在属性菜单中,选择“启用新的 Ctrl 键快捷键”

在此处输入图片描述


在 Windows 7 和 8 上启用 Ctrl 键Copy和快捷键Paste

尽管 Windows 7 和 8 上没有原生选项,但您可以使用 AutoHotKey 脚本来模拟复制和粘贴!然而,不幸的是,您无法选择全部,尽管也许您可以找到一种方法来编写 autohotkey 脚本来执行此操作,但不确定您是否可以。

以下是在 Windows 7 和 Windows 8 中启用命令提示符的CTRL + C方法:CTRL + V

  1. 创建一个文本文件并命名它copy-paste-command-promt.ahk或任何您想要以其结尾的名称.ahk(ahk 是 autohotkey 脚本的扩展名)。
  2. 将以下文本粘贴到文本文件中(请排除"CODE"下面开始的,因为这是由于超级用户的限制而需要的)

“代码”#IfWinActive ahk_class ConsoleWindowClass
{
^c::
If toggle != 1
{
CoordMode, Mouse, Window
MouseGetPos, x, y
MouseClick, Right, 40, 80 ; 这将打开控制台窗口的上下文菜单...然后选择“标记”。
Sleep, 0050
Send, {Down}{Enter}
MouseMove, x, y
toggle = 1
}
else
{
Send, {Enter}
toggle = 0
}
Return

^v::
SendInput {Raw}%clipboard%
Return
}
#IfWinActive

  1. 现在,为了确保它始终以 WIndows 启动,请将.ahk刚刚创建的文件拖到:

C:\Users\YOURUSERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

(确保您更改YOURUSERNAME为实际的 Windows 用户名文件夹)

现在您可以复制并粘贴到 Windows 7 和 8 中的命令控制台中!

答案2

没有预设的方法来获取控制台历史记录,但您可以使用 doskey 实用程序。它还可以处理别名。如果可以在每次启动 cmd shell 时通过 Registry Autorun 调用,您可以按 [F7] 来获取一个小型可滚动窗口,其中包含要复制到控制台的历史记录。要获取整个历史记录(此 cmd.exe 调用的历史记录),您可以将输出重定向doskey /history到文件或剪贴板doskey /history|clip

编辑顺便说一句,在最近的 Win10 版本中,您可以Enable Ctrlkey shortcuts在 cmd.exe 属性对话框的选项选项卡中检查 Ctrl-A、X、C、V 是否正常工作,我很喜欢它。/编辑

这是我的 init.cmd 的一部分,我在每台新安装的 PC/OS 上都会运行它。它将一个Aliases.txt 文件存储在 中%UserProfile%,安装 Autorun 键和一些其他您可以用作模板的东西(它会自动提升某些更改的权限):

:: Init.cmd::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off & setlocal EnableExtensions DisableDelayedExpansion
net file 1>nul 2>&1 || (powershell -ex unrestricted -Command ^
  "Start-Process -Verb RunAs -FilePath '%comspec%' -ArgumentList '/c %~f0 %*'"
  goto :eof)
:: TODO: Put code here that needs elevation

Set Aliases="%UserProfile%\Aliases.txt"
If Not Exist %Aliases% (
  Echo ~+=PushD "%UserProfile%"
  Echo ~=CD /D "%UserProfile%"
  Echo \+=PushD \
  Echo \=CD \  
  Echo -+=PushD ..
  Echo -=CD ..
  Echo +=PopD
  Echo CDD=CD /D $*
  Echo X=Exit /b 0
  Echo clear=cls
  Echo Alias=Doskey $*
  Echo Aliases=Doskey /MACROS:ALL
  Echo mc=far
)>%Aliases% 
Doskey /Macrofile=%Aliases%

Set "Key=HKCU\Software\Microsoft\Command Processor"
Reg ADD "%Key%" /f /v AutoRun /t REG_SZ /d "Doskey /MacroFile=\"%Aliases:"=%\""
Reg Add "%Key%" /f /v CompletionChar      /t REG_DWORD /d 0x9
Reg Add "%Key%" /f /v PathCompletionChar  /t REG_DWORD /d 0x9
Reg Add "%Key%" /f /v DelayedExpansion    /t REG_DWORD /d 0x1
Reg Add "%Key%" /f /v EnableExtensions    /t REG_DWORD /d 0x1
Set "Key=HKCU\Control Panel\International"
Reg Add "%Key%" /f /v sShortDate          /t REG_SZ /d yyyy-MM-dd
Set "Key=HKCU\Control Panel\Desktop"
Reg Add "%Key%" /f /v PaintDesktopVersion /t REG_DWORD /d 0x1
Reg Add "%Key%" /f /v MenuShowDelay       /t REG_SZ /d 50
Set "Key=HKEY_USERS\.Default\Control Panel\International"
Reg Add "%Key%" /f /v sShortDate          /t REG_SZ /d yyyy-MM-dd
:: Keep Net Use Drives in UAC Mode
Set "Key=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
Reg Add "%Key%" /f /v EnableLinkedConnections /t REG_DWORD /d 0x1
:: Sort Dirs first orde by name
if not defined DirCMD (Setx /m DirCMD /OGN 1>NUL)
:: Have the prompt on two lines with ansi colour (req. an actual Windows 10)
:: 19:57:10 \TMDat1\Daten +Q:\Test\2016-11\02__________________________...
:: > 
(Setx Prompt "$E[92m$t$h$h$h $m$+$p________________________________________$_$g $E[0m" 1>NUL)
:: RefrweshEnv is a too from Chocolatey which does what the name says.
RefreshEnv 2>NUL

相关内容