Eseguendo un comando cmd da notepad ++ e inserendo l'output in un nuovo buffer?


Risposte:


2

Mi sembra che l'originale Q riguardi Notepad ++ che supporta qualcosa di simile alla capacità di vi di leggere l'output ( stdout) di un comando shell nel documento corrente ( general bufferin vi termonology),

vi Esempio

:r! ls

Descrizione

: ( excomando editor di riga) r (leggi) ! (dalla shell, l'output ( stdout) del comando lsnel documento corrente (niente specificato, il valore predefinito è leggere general buffer)

Esempio Notepad ++ v 7.7.1 (32 bit)

F5

o naviga nel menu, Run menu to Run .. menu-item

Immettere il comando desiderato nella casella di testo della notepad++ Runfinestra di dialogo,

cmd.exe /c echo %DATE% | clip

Premere INVIO key o fare clic su Esegui button

Ctrl+ Vcontenuto degli appunti nel documento Notepad ++.


Questo è plagio. La tua risposta cmd.exe /c echo %DATE% | clipè esattamente come la risposta di Martin Valach mesi fa. È anche simile al commento di Klitos Kyriacou dell'anno scorso. Inoltre, non è in alcun modo il modo migliore per raggiungere lo scopo in quanto è ancora necessario Ctrl + V
phuclv

2

È possibile utilizzare Notepad ++ per eseguire un comando dal prompt dei comandi di Windows e posizionare l'output in un buffer Notepad ++?

Per quanto ne so, non direttamente. Detto questo, un file batch potrebbe aiutare in questo caso, ad esempio:

@rem Redirects both STDOUT and STDERR to e.g. cli_tmp.txt
%* > C:\temp\cli_tmp.txt 2>&1 
"C:\Program Files (x86)\Notepad++\notepad++.exe" C:\temp\cli_tmp.txt
exit()

Se lo salvi come ex. open_npp.bat e registrarlo su Windows Path, è possibile utilizzare ex. :

open_npp echo hello

a un prompt dei comandi e l'output del testo da echo hello(cioè hello) apparirà in una nuova scheda Notepad ++ etichettata come cli_tmp.txt. Inoltre, è possibile utilizzare la voce di menu Esegui di Notepad ++ per eseguire cmd /k open_npp echo helloper ottenere lo stesso effetto dell'esecuzione open_npp echo hellodalla riga di comando.

Appunti

  • Il più grande svantaggio di questo approccio è che probabilmente vorrai copiare l'output o salvare nuovamente il documento temporaneo con un titolo diverso a ogni esecuzione, poiché l'output verrà in genere sovrascritto ogni volta che viene chiamato il file batch.

  • Come nell'esempio batch fornito, l'output di STDERR viene scritto nel file temporaneo (rispetto alla console) e la finestra di comando viene chiusa immediatamente al completamento ( exit()). Tuttavia, questo comportamento può ovviamente essere modificato.

  • Questo metodo probabilmente non rileva correttamente l'input / output del comando interattivo. Allo stesso modo, se un processo si blocca o impiega un'eternità, potresti essere bloccato indovinando cosa sta succedendo.

  • Non ho mai avuto problemi con questo tipo di file batch ma potrebbero esserci sempre casi limite. = P


1

Nella finestra di Notepad ++ Console è possibile eseguire un comando shell e reindirizzare l'output nel buffer degli Appunti.

Ad esempio, per copiare la data e l'ora correnti negli appunti:

cmd /c Echo %DATE% %TIME% | clip

1

Puoi usare pork2sausage . Basta aprire Plugin Admin nel più recente Notepad ++ o installare Plugin Manager nelle versioni precedenti, quindi installare il plugin da lì. Altrimenti vai al Plugin Central e scarica manualmente il file zip

Il plug-in trasforma un testo selezionato come desiderato, una volta che il trasformatore (un programma console che accetta input quindi genera un output) è impostato correttamente con il plug-in Pork to Sausage.

La parte interessante di questo plugin è la sua flessibilità: uno (o più) piccoli programmi possono essere scritti in qualsiasi lingua (come java o .Net), o l'utilizzo degli altri programmi per trasformare il testo selezionato in Notepad ++ .

È possibile personalizzare fino a 20 comandi.

Plugin Central

Dopo aver installato Plugin aperti> Porta su salsiccia> Modifica comandi utente e aggiungi il comando che desideri. Ecco un esempio per convertire il testo selezionato in maiuscolo (ovviamente in realtà dovresti usare la conversione del case integrata da Notepad ++)

[toupper]
progPath=C:\Windows\System32\cmd.exe
progCmd=cmd /c "echo $(SELECTION) | tr [:lower:] [:upper:]"
workDir=C:\Users\...\tmp

Tuttavia, per far funzionare l'esempio sopra con nuove linee, è necessario aggiungere altre 2 opzioni progInpute progOutput. È inoltre possibile impedire all'output di sovrascrivere il testo selezionato con replaceSelection. Puoi trovare maggiori informazioni nel commento del plugin


0

No. Quello che puoi fare è installare Vim o Emacs su Windows. Puoi anche scrivere comandi in Notepad ++ e salvarli in un file batch (.bat); doppio clic che dovrebbe eseguire i comandi.


Nosei sicuro? A condizione che Notepad ++ abbia un forte supporto per i plugin
phuclv
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.