Copiez plusieurs lignes à partir de l'invite de commande Windows sans retour à la ligne forcé


16

Est-il possible de copier plusieurs lignes à partir de l'invite de commandes Windows sans insérer une nouvelle ligne où chaque ligne atteint la fin du terminal?

Par exemple, si j'ai la ligne suivante dans la console:

c:\very_long_path_here\more_path_here>command_i_want_to_copy -with -some
arguments that wrap over lines.

Si je le sélectionne et le copie, j'obtiendrai une nouvelle ligne après le mot «certains», que je devrai supprimer manuellement.

Existe-t-il un moyen de copier les données (commande qui sera analysée, sortie imprimée) sous la forme qu'elle est interprétée / imprimée, plutôt qu'avec des lignes enveloppées?


1
Dans Win 7/8, il y a un clip.exe, qui redirige l'entrée vers le presse-papiers. Vous pouvez l'utiliser comme c:\> echo your -command | clip.exe. Mais c'est plus approprié pour une sortie de commande ..
semaine

afaik, il n'y a aucun moyen de le faire. mais vous pouvez peut-être combiner quelque chose comme un court script d'auto avec clip.exe pour archiver votre objectif
weberik

1
depuis Windows 10, le comportement par défaut
encapsulera

Réponses:


13

L'invite de commandes Windows est notoirement rompue dans cet aspect. Il n'est pas possible d'obtenir le comportement du terminal Linux (au moins pour pré-Windows 10 selon le commentaire de Luu).

Cependant, il y a une fonction obscure dans cmd.exe qui aide: Maintenir la touche Maj enfoncée lorsque vous cliquez avec le bouton droit dans la zone sélectionnée (pour copier) supprimera TOUTES les nouvelles lignes du texte copié.

Si vous souhaitez sélectionner une seule longue ligne de commande (couvrant plusieurs lignes de terminal), cela fait ce que vous voulez. Cependant, il supprimera toujours tous les sauts de ligne, il n'est donc pas possible de sélectionner plusieurs lignes de commande (ou un script) de manière sensée.

Procédure détaillée:

  • Sélectionnez la ligne de commande longue en utilisant le bouton gauche de la souris
  • Appuyez sur Maj
  • Clic droit dans la zone sélectionnée (pour copier)
  • Décalage
  • Maintenant, le texte sélectionné est dans le tampon de copie sans retour à la ligne et vous pouvez par exemple le coller à nouveau dans cmd.exe en utilisant le bouton droit de la souris

Intéressant, je n'avais jamais entendu parler de cette fonctionnalité. Il semble que ce soit aussi bon que possible. Je n'utilise plus de fenêtres, mais quand j'aurai l'occasion de le confirmer, j'accepterai cette réponse. :-)
Adam Millerchip

1
depuis Windows 10, vous obtiendrez le comportement Linux par défaut
phuclv

... donc "Il n'est pas possible d'obtenir le comportement du terminal Linux" est incorrect
phuclv

@Luu: Merci d'avoir ajouté les informations sur Windows 10. Mais que voulez-vous dire par «par défaut»? Cela suggère qu'il existe un comportement alternatif pour les systèmes antérieurs à Windows 10, ce qui n'est pas le cas, donc votre commentaire est trompeur. Aussi: Qui utilise Windows 10? (SCNR)
Johannes Overmann

1
J'utilise Windows 10 et cela fonctionne lors de la copie de la sortie des commandes, mais pas lors de la copie des instructions à partir de l'invite de commande. Exemple: 1) Tapez une commande qui s'étend sur plusieurs lignes dans l'invite de commande; 2) copiez-le - les NewLines indésirables iront également dans le presse-papiers).
Ivan Akcheurov

3

Une autre option consiste à ouvrir le menu contextuel de la barre de titre de la fenêtre de la console, à aller dans Propriétés et à rendre la largeur du tampon d'écran suffisamment grande pour que les choses ne se terminent pas. (9999 semble être la valeur maximale.)

Si vous devez souvent faire cela, vous pouvez modifier l'option dans les valeurs par défaut au lieu de Propriétés.

Bien sûr, cette méthode tombe en panne si les lignes dépassent 9 999 caractères.


1
Belle idée aussi! Moins obscur à utiliser, mais moins de visibilité.
Johannes Overmann

1
@Abraxas J'ai réécrit la réponse beaucoup plus en détail.
1j01

0

Pour l'activer pour Windows 10:

Avec une fenêtre "cmd" ou "Windows Powershell", accédez aux propriétés (cliquez sur l'icône en haut à gauche) et sélectionnez l'option "Activer la sélection de retour à la ligne".

Mon invite Powershell ne l'avait pas activé, ce qui a fait l'affaire pour moi.


-2

Copiez simplement le code dans le bloc-notes puis dans la barre de menu, cliquez Formatpuis cliquez surWord Wrap


-4

Utilisez le SET puis combinez les parties de l'expression. De plus, vous pouvez faire à cette fin un fichier batch ou une macro.

@set WAIKTools=%ProgramFiles%\WAIK\Tools\amd64
@set LabelCD=GRTMPVOL_RU

@IF "%time:~0,1%" GTR "0" SET current=%DATE:~-4%-%DATE:~3,2%-%DATE:~0,2%@%TIME:~0,2%.%TIME:~3,2%.%TIME:~6,2%
@IF "%time:~0,1%" LSS "0" SET current=%DATE:~-4%-%DATE:~3,2%-%DATE:~0,2%@0%TIME:~1,1%.%TIME:~3,2%.%TIME:~6,2%

"%WAIKTools%\oscdimg.exe" -h -m -n -l%LabelCD% -b"%cd%\boot\w32sp3.bif" "BUILD-%current%" "BUILD-%current%-ISO\%LabelCD%.ISO"

1
Cette réponse n'a rien à voir avec la question. Où est la copie? Où est la partie du terminal Windows?
Johannes Overmann
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.