Atalho de teclado para selecionar a entrada atual do console no CMD

0

Existe um atalho de teclado para selecionar tudo o que está sendo digitado no momento (desculpe, esqueci qual é o termo adequado) no CMD? Este artigo do HTG diz que Ctrl + A deve fazer o trabalho, mas para mim isso apenas produz:

^A

Enquanto estou nisso, também gostaria de saber como a mesma entrada também pode ser gravada em um arquivo. Fazendo, por exemplo ...

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

... imprime a saída do comando dir no arquivo em vez do próprio comando.

    
por Hashim 01.11.2016 / 04:49

2 respostas

0

Não há uma maneira predefinida de obter o histórico do console, mas você pode usar o utilitário doskey. Ele também irá lidar com aliases. Se pode ser invocado em cada início de um shell cmd via Autorun do Registro, você pode pressionar [F7] para obter uma pequena janela rolável com o histórico para escolher uma entrada para copiar para o console. Para obter o histórico completo (dessa chamada cmd.exe), você pode redirecionar a saída de doskey /history para um arquivo ou a área de transferência doskey /history|clip .

Editar Btw, em lançamentos recentes do Win10 você pode verificar Enable Ctrlkey shortcuts na aba de opções do diálogo de propriedades cmd.exe para obter Ctrl-A, X, C, V funcionando e eu adoro isso . / Editar

Isso faz parte do meu init.cmd, que eu executo em cada nova instalação do pc / os. Ele armazena um arquivo Aliases.txt no %UserProfile% , instala a chave do Autorun e várias outras coisas que você pode usar como modelo (auto eleva para algumas alterações):

:: 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:\Test16-11__________________________...
:: > 
(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
    
por 02.11.2016 / 20:55
0

Você não pode usar a tecla CTRL no prompt de comando, isso resultará apenas em ^ . Como resultado, não há nenhum atalho de teclado "selecionar todos" no prompt de comando.

Em vez disso, clique com o botão direito do mouse na barra de título (não na janela do console), e há um menu diferente; vá para "Editar" e "Selecionar tudo".

Alémdisso,vocêpodefazerumatalhodetecladopsuedo,clicandoprimeironabarradetítuloe,emseguida,pressionandoEe,emseguida,Sparaatalhoatravésdomenu.VocênotaráqueoEde"Editar" está sublinhado e o S de "Selecionar tudo" está sublinhado. Isso é o que o sublinhado significa, pressione essa tecla no teclado e selecione o item de menu.

A desvantagem disso é que ele não seleciona apenas a linha atual, mas a janela inteira do console.

Você pode copiar e colar esse texto em um editor de texto depois de copiar a janela inteira e, em seguida, copiar e colar o que quiser no prompt de comando.

Infelizmente, essa é uma limitação do prompt de comando, porque um simples atalho de teclado "selecione toda a linha atual" certamente seria muito útil !!

Atalho de teclado para cima e para baixo

No entanto, algo digno de nota, é que o que você pode fazer se você quiser voltar para uma linha anterior que você digitou na mesma janela do console, você pode usar as teclas de seta "UP" e "DOWN" no teclado . Este é um atalho para o prompt de comando do Windows, bem como o console do Linux, é um truque muito útil que eu uso frequentemente ao codificar no linux ssh.

Por exemplo, digamos que esse seja seu console:

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

Se eu pressionar UP agora, ele mostrará isso na linha atual do console:

C:\Users\MyUsername\Documents> cd documents

Se eu pressionar UP duas vezes, isso será mostrado na linha atual do console:

C:\Users\MyUsername\Documents> cd myusername

Windows 10: ative os atalhos de CTRL no prompt de comando

O Windows 7 não tem essa opção, mas o Windows 10 faz isso! Agora, no Windows 10, você pode ativar CTRL + C e CTRL + V para copiar e colar. Espero que você também seja capaz de fazer CTRL + A para selecionar todos.

Você pode fazer isso assim:

  1. Clique com o botão direito na barra de título
  2. Escolha "Propriedades"

  • No menu de propriedades, escolha "Ativar novos atalhos da tecla Ctrl"
  • AtiveateclaCtrlCopyePasteatalhosnoWindows7e8

    MesmoquenãohajanenhumaopçãonativanoWindows7e8,vocêpodeusarumscriptAutoHotKeyparacopiarecolar!Vocênãopodeselecionartodos,noentanto,infelizmente,emboravocêpossaencontrarumamaneiradecodificaroscriptautohotkeyparafazerisso,nãotenhocertezasevocêpode.

    AquiestácomovocêhabilitaCTRL+CeCTRL+Vnopromptdecomandonasjanelas7e8:

    1. Crieumarquivodetextoenomeie-ocomocopy-paste-command-promt.ahkouqualquernomequevocêqueiraterminarem.ahk(ahkéaextensãodosscriptsdeautohotkey).
    2. Coleotextoabaixonoarquivodetexto(excluao"CODE" que começa abaixo porque isso foi necessário devido a uma limitação com o superusuário) :

    "CODE" #IfWinActive ahk_class ConsoleWindowClass
    {
    ^c::
    If toggle != 1
    {
    CoordMode, Mouse, Window
    MouseGetPos, x, y
    MouseClick, Right, 40, 80 ; this opens the Console Window's context menu... and then selects 'Mark'.
    Sleep, 0050
    Send, {Down}{Enter}
    MouseMove, x, y
    toggle = 1
    }
    else
    {
    Send, {Enter}
    toggle = 0
    }
    Return

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

    1. Agora, para garantir que sempre comece com o Windows, arraste o arquivo .ahk que você acabou de criar para:

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

    (certifique-se de alterar YOURUSERNAME para a sua atual pasta de nome de usuário do Windows)

    Agora você pode copiar e colar no console de comando no Windows 7 e 8!

        
    por 01.11.2016 / 05:01