J'exécute une application à l'invite de commande ou dans un shell Git et j'aimerais importer le résultat dans Notepad afin de pouvoir le consulter et le modifier ultérieurement.
J'ai essayé ce qui suit, mais je reçois toujours une instance vide du Bloc-notes:
diff file1.txt file2.txt | notepad
Je suis conscient que je peux rediriger la sortie vers un autre fichier, puis l'ouvrir dans le Bloc-notes. J'aimerais éviter cette étape supplémentaire, car je suis juste habitué à utiliser Vim ou moins sur des systèmes autres que Windows.
windows
command-line
notepad
Der Hochstapler
la source
la source
more
Windows.vim
, pourquoi ne pas l'installer?Réponses:
D'après ce que je peux dire, il n'y a aucun moyen d'entrer directement dans Notepad.
Cependant, vous pouvez diriger
clip
et coller dans le bloc-notes, comme suit:Ensuite, appuyez simplement sur Ctrl+ Vdans le Bloc-notes.
la source
&& notepad file3.txt
?Pensez à utiliser Vim ou, dans votre cas, gVim si vous préférez un environnement graphique.
Vous pouvez ensuite y accéder avec un seul trait d'union comme argument, ce qui indique à Vim / gVim de lire à partir de l'entrée standard.
la source
:%!diff file1.txt file2.txt
-
est souvent utilisé pour signifier "lu à partir de stdin", donc ce n’est pas strictement limité àvim
. D'autres éditeurs utilisent-i
(par exemplekate
).voici un petit programme Windows qui le fait correctement (sans entraver le presse-papier). Il devrait être adaptable à PowerShell, et je pourrais mettre à jour cette réponse si le temps me le permet, mais vous pouvez également utiliser ce programme directement.
Eh bien, qu'en est-il de PowerShell? Pas besoin d'installer une autre application. Malheureusement, vous aurez besoin de créer un endroit de fichier script dans votre
PATH
...Version courte que vous pouvez utiliser
Si vous créez un fichier de commandes (par exemple
ShowInNotepad.bat
) avec le contenu suivant et le placezPATH
quelque part:vous pouvez alors appeler
echo blah | ShowInNotepad
de n'importe où!Notez que cela ne suppose que vous utilisez une version récente de Windows ish (Vista +) et pas désactivé PowerShell ou désinstaller le framework .NET. En d'autres termes, une installation Windows par défaut fonctionnera.
Longue explication et alternatives
Le moyen le plus simple auquel je puisse penser est d'automatiser l'action de collage ( Ctrl+ V). Au moins une autre réponse est déjà en cours, mais celle-ci utilise AHK - vous auriez peut-être plus de chance que PowerShell fonctionne dans un environnement d'entreprise verrouillé.
Passons au script, oui?
C'est assez simple, je ne vais donc pas m'expliquer le script plus que ne le font déjà les commentaires.
Usage
Pour l'utiliser, il vous suffit de placer le script dans un
.ps1
fichier (par exempleShowInNotepad.ps1
), de le placer quelque part dans votrePATH
, puis d'appelerpowershell ShowInNotepad.ps1
après avoir placé le texte que vous souhaitez afficher dans le Presse-papiers.Exemple:
Malheureusement, il peut parfois être difficile d’exécuter des scripts PowerShell (règles d’exécution, etc.). Par conséquent, j'ai condensé ce script en une ligne que vous pouvez appeler directement à partir de l'invite de commande, ou même placer dans un fichier de traitement par lots:
Si vous créez un fichier de commandes (par exemple
ShowInNotepad.bat
) avec le contenu suivant et le placezPATH
quelque part:vous pouvez alors appeler
echo blah | ShowInNotepad
de n'importe où!la source
Save
comportements de modification et de sortie sont différents. À part de remplacer le Bloc-notes lui-même ou d'injecter directement le texte dans son contrôle d'édition, il n'y a pas beaucoup d'autres options. Bien sûr, cette méthode a l’inconvénient d’empiéter sur le contenu du presse-papier (même s’il est supposé de toute façon être éphémère). Je ne pense pas que perdre le focus soit un problème majeur; c'est un ...ShowWindow
frappe et la frappe d'envoi). Et cette méthode nécessite un peu plus de configuration (création du fichier de script) à utiliser, oui.Que diriez-vous d'utiliser AutoHotkey ?
Enregistrez les éléments suivants sous
stdin.ahk
et placez-les dans votre répertoire AutoHotkey:Puis la ligne de commande:
Transmet le résultat de la commande dans le Bloc-notes, tant que la fenêtre est ouverte et intitulée
Untitled - Notepad
. Si la fenêtre n’est pas active, elle se mettra volontiers en arrière-plan jusqu’à ce que la fenêtre soit active. Vous pouvez même vous en aller à un autre programme et celui-ci continuera une fois de plus.Cela semble mourir lorsque le programme qui sort de notre entrée standard meurt cependant ...
(Pour information, le code stdin () était ici sans vergogne . )
la source
C'est totalement possible. Je viens d'essayer. Je suppose que Notepad est configuré pour ouvrir les fichiers txt par défaut:
D'accord, vous créez techniquement un fichier, mais il n'est pas enregistré.
Piping en plus est également une option.
la source
output.txt
cela le gênera. Marginalement plus sûr serait d'utiliser%temp%/somerandomstring.txt
.Voici un moyen laid, mais efficace pour y parvenir:
Assurez-vous d’envoyer uniquement une sortie texte. D'autres données seront potentiellement interprétées comme des caractères de contrôle (CTRL, ALT, DEL, etc.).
la source
Voici quelques solutions basées sur VBScript qui peuvent fonctionner (bien que .. elles reposent un peu sur les applications qui s'ouvrent à temps):
pipe2key.vbs - ouvre l’application spécifiée comme premier argument, puis envoie StdIn au clavier. Doit être utilisé avec cscript.exe car wscript ne fournit pas d'accès StdIn. Probablement assez lent pour les longs documents - mais n'empiétera pas le presse-papiers
Exemple d'utilisation:
diff file1.txt file2.txt | cscript pipe2key.vbs notepad.exe
Ou, pasteinto.vbs. Automatise l'opération CTRL-V après le lancement d'une application (utilise donc la commande "clip" comme indiqué dans les réponses précédentes). Beaucoup plus rapide et plus propre (à mon avis) que pipe2key.vbs, mais le processus écrasera le presse-papiers
Exemple d'utilisation:
diff file1.txt file2.txt | clip && pasteinto notepad.exe
la source
Quelque chose comme ça "pourrait" fonctionner.
Aw, vous n'avez pas réalisé que c'est quelque chose que vous feriez manuellement à chaque fois (d'après le son). Vous pourrez peut-être créer une sorte de macro ou quelque chose à faire pour vous à chaque fois pour accélérer le processus. Pas sûr sur celui-là.
diff file1.txt file2.txt > file.txt | sleep 1 | notepad.exe file.txt | rm file.txt
Il faudrait terminer l'écriture du contenu du fichier diff dans fichier.txt pour pouvoir charger l'intégralité de l'opération diff, ce que je ne suis pas sûr de pouvoir faire. Il pourrait y avoir un moyen de faire une pause d'une manière ou d'une autre entre l'opération de conduite si tel est le cas.
la source
&
,&&
Et||
sont des opérateurs aux commandes de chaîne ensemble. Tous les 3 se comportent différemment dans leur manière de procéder si une commande génère une valeur de retour non-0.|
est complètement différent car il est utilisé pour diriger la sortie d'un programme à un autre. Le résultat pourrait être ce que vous souhaitiez, mais l'utilisation de l'un des opérateurs de chaînage rend l'intention plus claire, car aucune canalisation n'est souhaitée dans cet exemple. Pour une référence supplémentaire: microsoft.com/resources/documentation/windows/xp/all/proddocs/…Ma langue n'est pas l'anglais alors désolé pour les erreurs.
Je pense que vous ne pouvez pas directement mettre la sortie dans le bloc-notes ouvert. Peut-être que je me trompe à ce sujet. Vous devez créer un fichier avec la sortie afin de pouvoir y travailler. La commande tee peut rediriger la sortie vers deux ou peut-être plusieurs commandes ou fichiers en même temps.
tee shirt homme
N'oubliez pas d'utiliser >> à la place> lorsque vous redurectez la sortie dans le fichier. Le> écrasera le fichier, >> ajoutera la sortie après tout ce qui se trouve déjà dans ce fichier.
la source
tee
n'est généralement pas disponible sous Windows et même si c'était le cas, le problème ne serait pas résolu.Vous ne pouvez pas, le Bloc-notes est trop limité pour cela! Mieux encore ... installez Cygwin et contournez tout ce "manque de fonctionnalités" de Windows. Vous pouvez ensuite utiliser la commande que vous connaissez déjà.
Autant que je sache, très peu de programmes Windows prennent en charge le pipeline, encore pire pour les programmes à interface graphique.
Vous pouvez essayer d'ouvrir les demandes de fonctionnalités à l'un des programmes "windows tail" pour l'ajouter.
la source