web-dev-qa-db-fra.com

Raccourci clavier pour coller le contenu du Presse-papiers dans la fenêtre d'invite de commande (Win XP)

Existe-t-il un raccourci clavier permettant de coller le contenu du Presse-papiers dans une commande Fenêtre d’invite sous Windows XP (au lieu d’utiliser le bouton droit de la souris)?

Le typique Shift+Insert ne semble pas fonctionner ici.

301
sme

Personnellement, j'utilise un petit script AutoHotkey pour remapper certaines fonctions du clavier, pour la fenêtre de console (CMD) que j'utilise:

; 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

Oui .. mais maladroit. Lien

alt + Spaceek <- pour copie et
alt + Spaceep <- pour coller.

424
Nescio

Pas vraiment lié à la programmation, mais j’ai trouvé this sur Google, il n’existe pas de raccourci clavier direct , mais le rend un peu plus vite.

Pour activer ou désactiver le mode QuickEdit:

  1. Ouvrez le programme MS-DOS ou la commande Invite.
  2. Cliquez avec le bouton droit sur la barre de titre et appuyez sur Propriétés.
  3. Sélectionnez l'onglet Options.
  4. Cochez ou décochez la case QuickEdit Mode.
  5. Appuyer sur OK.
  6. Dans la boîte de dialogue Appliquer les propriétés au raccourci, sélectionnez l'option Appliquer les propriétés à la fenêtre actuelle uniquement si vous souhaitez modifier le paramètre QuickEdit pour cette session de cette fenêtre uniquement, ou sélectionnez le raccourci Modifier qui a démarré cette fenêtre pour modifier le paramètre QuickEdit de tous les invocations futures de l'invite de commande ou le programme MS-DOS.

QuickEdit

Pour copier du texte lorsque QuickEdit est activé:

  1. Cliquez et faites glisser le pointeur de la souris sur le texte souhaité.
  2. Appuyez sur Entrée (ou cliquez n'importe où dans la fenêtre avec le bouton droit de la souris) pour copier le texte dans le Presse-papiers.

Pour coller du texte lorsque QuickEdit est activé:

  1. Cliquez avec le bouton droit n'importe où dans la fenêtre.

Pour copier du texte lorsque QuickEdit est désactivé:

  1. Cliquez avec le bouton droit sur la barre de titre, appuyez sur Modifier dans le menu, puis appuyez sur Marquer.
  2. Faites glisser la souris sur le texte que vous souhaitez copier.
  3. Appuyez sur Entrée (ou cliquez n'importe où dans la fenêtre avec le bouton droit de la souris) pour copier le texte dans le Presse-papiers.

Pour coller du texte lorsque QuickEdit est désactivé:

  1. Cliquez avec le bouton droit sur la barre de titre, appuyez sur Modifier dans le menu, puis appuyez sur Coller.
136
Rob Cooper

Merci Pablo, exactement ce que je cherchais! Toutefois, si je peux me permettre d’améliorer légèrement votre script, je suggère de remplacer votre macro ^ V par le texte suivant:

; 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

L'avantage d'utiliser SendInput est que

  • le menu système Invite de la commande ne comporte pas d'élément de menu "Alt + Espace E P" pour effectuer le collage (fonctionne pour l'anglais et l'espagnol, mais pas pour toutes les langues).
  • cela évite le scintillement désagréable que vous obtenez lorsque le menu est créé et détruit.

Notez qu'il est important d'inclure le "{Raw}" dans la commande SendInput, au cas où le presse-papier contiendrait "!", "+", "^" Ou "#".

Remarque: il utilise StringReplace pour supprimer les caractères de retour chariot supplémentaires de Windows. Merci hugov pour cette suggestion!

34
Huw Walters

Il existe également n excellent outil open source appelé clink , qui étend cmd de nombreuses fonctionnalités. L’un d’eux est d’utiliser ctrl + v pour insérer du texte.

18
sibbl
14
Franck Dernoncourt

Ici est un outil gratuit qui le fera sous Windows. Je le préfère à un script car il est facile à configurer. Il fonctionne comme une application native rapide, fonctionne sur XP et versions ultérieures, possède des paramètres de configuration permettant de remapper les clés de copie/collage/sélection pour les fenêtres de commande:

enter image description here

De plus, je connais les développeurs.

8
c00000fd

Merci, Pablo, d’avoir fait référence à l’utilitaire AutoHotkey. Depuis que j’ai installé Launchy qui utilise Alt+Space Je devais le modifier mais ajouter Shift clé comme indiqué:

; 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

la méthode la plus simple consiste simplement à copier le texte que vous souhaitez coller dans cmd et à ouvrir cmd goto "propriétés" ---> "option" onglet ----> cochez la case (cochez la case) "mode d'édition rapide" et cliquez sur " ok "..... maintenant vous pouvez coller n'importe quel texte du presse-papiers en faisant clic droit depuis votre souris.

Je vous remercie..

4
Vignesh Viper

Théoriquement, l'application dans l'invite DOS a son propre presse-papiers et ses raccourcis. Importer du texte à partir du presse-papier de Windows est "extra". Cependant, vous pouvez utiliser Alt-Space pour ouvrir le menu système de la fenêtre Invite, puis appuyer sur E, P pour sélectionner Edition, menu Coller. Cependant, MS pourrait fournir un raccourci en utilisant Win-key. Il n'y a aucune chance d'être utilisé dans une application DOS.

3
i486

Ce n'est pas vraiment un raccourci mais juste un accès rapide au menu de contrôle: Alt-space E P

Si vous pouvez utiliser votre souris, un clic droit sur la fenêtre de commande fonctionne comme une pâte lorsque je l’ai essayée.

3
jop

Si vous utilisez le gestionnaire de presse-papiers Ditto (open source, gratis), vous pouvez simplement utiliser le raccourci pour coller de Ditto et le coller dans le presse-papier dans CMD à votre place.

enter image description here

2

Il m'a fallu un peu de temps pour comprendre pourquoi votre script AutoHotkey ne fonctionne pas avec moi:

; 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

En fait, il s’appuie sur les frappes au clavier et par conséquent sur la disposition du clavier! Donc, quand vous êtes, comme moi, malheureux de n'avoir qu'un clavier AZERTY, votre suggestion ne fonctionne tout simplement pas. Et pire encore, je n’ai trouvé aucun moyen facile de remplacer la méthode SendInput ou de modifier son environnement pour résoudre ce problème. Par exemple, SendInput "1" n’envoie simplement pas le chiffre 1.

Je devais transformer chaque caractère en unicode pour le faire fonctionner sur mon ordinateur:

#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

Pas très simple ...

2
Djee

Si vous êtes un utilisateur Cygwin, vous pouvez ajouter ce qui suit à votre fichier ~/.bashrc:

stty lnext ^q stop undef start undef

Et ce qui suit dans votre fichier ~/.inputrc:

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

Redémarrez votre terminal Cygwin.

(Remarque: j'ai utilisé un C majuscule pour la copie, car CTRL + c est affecté à la fonction de pause sur la plupart des consoles. Assaisonnez à votre goût.)

Source

1
U007D

Au lieu de "cliquer avec le bouton droit de la souris", démarrez votre session (une fois dans la fenêtre d'invite de commande) en appuyant sur Alt/Espace. Cela ouvrira le menu de la fenêtre Invite de commandes et vous verrez les raccourcis de commandes clavier soulignés que vous connaissez bien, tout comme dans l’interface graphique de Windows.

Bonne chance!

1
Michael Scott

J'ai récemment découvert que l'invite de commande prend en charge le menu contextuel via le clic droit de la souris. Vous trouverez plus de détails ici: http://www.askdavetaylor.com/copy_paste_within_Microsoft_windows_command_Prompt.html

1
Denis Vuyka

Un moyen plus simple consiste à utiliser Windows PowerShell au lieu de cmd. ça marche très bien avec texter.

1
ilcredo

Vous pouvez essayer d'utiliser Texter et créer quelque chose d'improbable comme:

./p, déclenché par un espace et remplaçant le texte par% c

Je viens de le tester et cela fonctionne bien. La seule chose à faire est d'utiliser une séquence rare, car Texter ne peut pas la limiter à cmd.

Il existe probablement d'autres utilitaires de ce type qui pourraient fonctionner, et même AutoHotKey , sur lequel Texter est construit, pourrait être plus performant, mais Texter est simple :-)

1
njsf

Solution assez simple peut être Console 2 , redéfinir les clés et vous allez.

1
BG Bruno

J'ai suivi les étapes de @ PabloG comme suit

  1. goto http://www.autohotkey.com/ - télécharger autohotkey
  2. suivez les étapes d'installation simples
  3. après l'installation, créez le nouveau fichier * .ahk comme suit, cliquez avec le bouton droit de la souris sur le bureau> Nouveau> Script Autohotkey> giveAnyFileName.ahk.
  4. clic droit sur ce fichier> Modifier
  5. copier coller script autohotkey donné par @PabloG dans sa réponse
  6. sauver et fermer
  7. double-cliquez sur le fichier à exécuter
  8. Fait maintenant, vous devriez pouvoir utiliser Ctrl+v pour coller dans l'invite de commande
1
Pravin Waychal