Bearbeiten Sie eine Textdatei auf der Konsole mit Powershell


84

Ich versuche herauszufinden, wie Textdateien in der Konsole am einfachsten bearbeitet werden können (in meinem Fall PowerShell). Ich verwende Windows 7 64-Bit. Es ärgert mich, dass ich nicht einfach tippen kann edit filename.txt, um eine Datei zu bearbeiten. Das hat früher funktioniert, aber das hat sich geändert. Was sind meine Optionen zum Anzeigen und Bearbeiten von Textdateien in der Windows-Konsole? Wenn Sie mir sagen, dass ich VIM installieren und lernen soll, werde ich Ihnen ins Gesicht schlagen. :-)


1
Ich habe mir erlaubt, Ihre Frage zu bearbeiten, da sie überhaupt nichts mit PowerShell zu tun hat.
Joey

2
benutze Nano ......
Scape

Antworten:


28

Kinesics Texteditor .

Es ist superschnell und verarbeitet große Textdateien, obwohl die Funktionen minimal sind. Es gibt eine GUI-Version und eine Konsolenversion (k.exe). Sollte unter Linux genauso funktionieren.

Beispiel: In meinem Test dauerte es 7 Sekunden, um ein 500-MB-Image zu öffnen.

Bildschirmfoto


2
+1 Sehr netter Editor! Hat eine 20-Millionen-Punkte-Punkt-Cloud-Datei reibungslos geöffnet!
Adri CS

3
Sie müssen nicht installieren. Führen Sie einfach das EXE-Paket aus und es wird mit dem Fehler 740 angehalten (erfordert eine Erhöhung). Notieren Sie sich das Verzeichnis, in das die Dateien extrahiert wurden, und kopieren Sie sie irgendwo hin.
Bill_Stewart

24

Warum nicht Notizblock verwenden?

notepad.exe filename.txt

Das alte edit.comfunktioniert in PowerShell (zumindest auf meiner Box: Windows 7 Pro x86), aber in x64 funktioniert es aufgrund seiner 16-Bit-Architektur nicht.

Sie können sich diesen einfachen Editor ansehen .


Wenn Sie versuchen, eine Datei lokal zu bearbeiten, können Sie einfach notepad anstelle von notepad.exe eingeben, und es funktioniert einwandfrei. Sie haben jeden Tag ein paar Sekunden gespart :)
Vlad Schnakovszki

1
Notepad schlägt für mich lautlos fehl (Windows2019). Ist wirklich ein Konsoleneditor integriert, oder wird versucht, ein Fenster in einer fensterlosen Sitzung zu öffnen?
Andrew Lorien

21

Während Sie riskieren, dass Sie mich schlagen, bleiben Sie bei der von Ihnen erwähnten Lösung stecken. Schauen Sie sich diesen Beitrag auf SuperUser an:

Welches sind die Nicht-X-Texteditoren in Powershell?

Es gibt auch eine Nano-Version für Windows:

Nano Editor

Ich werde mich jetzt ducken und abdecken, hoffentlich hat jemand eine ausreichendere Antwort.


Für Benutzer, die wissen müssen, wie man Nano aus jedem Verzeichnis zum Laufen bringt, lautet die relevante Google-Suche: google.co.uk/… Ich persönlich bevorzuge Nano gegenüber Kinesics, aber die individuellen Vorlieben können variieren
Peter David Carter

Du hast meinen Tag gerettet. Es gibt eine Windows-Version in Win32-Unterstützung .
Peter L

16

Ein bisschen wie eine Wiederbelebung, aber für alle anderen, die zu dieser Frage kommen, werfen Sie einen Blick auf den Micro- Editor. Es ist eine kleine eigenständige EXE-Datei ohne Abhängigkeiten und mit nativen Windows 32 \ 64-Versionen. Funktioniert gut in PowerShell und CMD.EXE.

Geben Sie hier die Bildbeschreibung ein


micro.exe verarbeitet chinesische Zeichen besser als k.exe / kit.exe.
Pimgeek

Leider kann micro.exe den Windows-Dateipfad nicht gut verarbeiten. Der Befehl "Datei öffnen" bietet kein Datei-Explorer-Fenster.
Pimgeek

10

Ich stimme Sven Plath zu . Nano ist eine großartige Alternative. Wenn Sie Chocolatey Setup haben. Installieren Sie Nano, indem Sie Folgendes in Powershell eingeben:

PS C:\dev\> choco install nano

Um dann somefile.txt zu bearbeiten, geben Sie Folgendes ein:

PS C:\dev\> nano somefile.txt

Es ist ziemlich ordentlich!

Bearbeiten: Nano funktioniert gut auf meiner Windows 10-Box, aber das erste Laden auf meinem Windows 7-Computer dauert unglaublich lange. Dadurch bin ich auf meinem Win 7-Laptop zu vim (vi) gewechselt

PS C:\dev\> choco install vim
PS C:\dev\> vim $profile

Fügen Sie Set-Alias ​​(sal) eine Zeile im Powershell-Profil hinzu.

sal vi vim

Esc -: - x - Enter :-)


7

Sie können Far Manager ( übrigens ein großartiges OFM ) installieren und seinen Editor so aufrufen:

Far /e filename.txt

Vielen Dank für den Dateimanager, es ist lange her, seit ich diese Art von Dateimanager das letzte Mal verwendet habe. Ohh, ich erinnere mich an die Zeiten, als ich auf einem alten PC der Schule gespielt habe :)
Luke

6

Wenn Sie einen Windows-Container verwenden und eine beliebige Datei ändern möchten, können Sie Vim in der Powershell-Konsole problemlos herunterladen und verwenden.

So schalten Sie mit PowerShell in den Windows Docker-Container:

docker exec -it <name> powershell

  • Holen Sie sich zuerst Chocolatey Package Manager

    Invoke-WebRequest https://chocolatey.org/install.ps1 -UseBasicParsing | Invoke-Expression;

  • Installieren Sie Vim

    choco install vim

  • UMWELTVARIABLE aktualisieren Sie können einfach exitund zurück zum Behälter schälen

  • Gehen Sie zum Dateispeicherort und Vim es vim file.txt


5

Installieren Sie vim online, und dann können Sie einfach Folgendes tun: vim "Dateiname" , um diese Datei zu bearbeiten


2
Eine beschissene Antwort, nachdem das OP ausdrücklich erklärt hatte , dass sie Vim nicht verwenden wollten. -1.
MD XF

11
Keine beschissene Antwort, da Google andere Leute als OP hierher führen wird.
Bruno Bronosky

2

Ich bin ein pensionierter Ingenieur, der in den 60er Jahren mit DOS, Fortran, IBM360 usw. aufgewachsen ist, und wie andere in diesem Blog vermisse ich den Verlust eines Befehlszeileneditors in 64-Bit-Windows sehr. Nachdem ich eine Woche im Internet verbracht und Editoren getestet hatte, wollte ich meine beste Lösung vorstellen: Notepad ++. Es ist weit entfernt von DOS EDIT, aber es gibt einige Nebeneffekte. Es ist leider ein Bildschirmeditor, benötigt eine Maus und ist folglich langsam. Auf der anderen Seite ist es ein anständiger Fortran-Quellcode-Editor, in dem Zeilen- und Spaltennummern angezeigt werden. Es kann mehrere Registerkarten für Dateien behalten, die bearbeitet werden, und merkt sich sogar, wo der Cursor zuletzt war. Ich schreibe natürlich weiterhin Tastaturcodes (50 Jahre Gewohnheit), aber überraschenderweise funktionieren zumindest einige davon. Möglicherweise keine dokumentierte Funktion. Ich habe den Editor in EDIT.EXE umbenannt, einen Pfad dazu eingerichtet und ihn über die Befehlszeile aufgerufen. Es ist nicht so schlimm. Ich lebe damit. Übrigens, achten Sie darauf, die Tabulatortaste in der Fortran-Quelle nicht zu verwenden. Fügt eine ASCII 6 in den Text ein. Es ist unsichtbar und gFortran kann zumindest nicht damit umgehen. Notepad ++ hat wahrscheinlich viele Funktionen, mit denen ich keine Zeit habe.


2

Sie können Nano über Choco in Powershell installieren. Dies ist eine reibungsarme Methode, um Textbearbeitungsfunktionen in Powershell zu integrieren:

  1. Installieren Sie Choco
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
  1. Installieren Sie Nano
choco install nano
  1. Profitieren
nano myfile.txt

Das Beste daran ist, dass es Teil des Pfades wird und über Neustarts usw. hinweg weiterarbeitet :)


Nano unter Windows in der Remote-PowerShell scheint die Tasten Auf / Ab / Links / Rechts nicht zu erkennen.
not2qubit

Sie sollten wahrscheinlich eine neuere Version von Nano verwenden. Die von Choco zur Verfügung gestellte ist sehr alt. Um es dann mit SSH verwenden zu können, müssen Sie mit -cgFlags ausgeführt werden, verlieren jedoch trotzdem die Cursor-Aktualisierung. Drücken Sie, um die visuelle Position der Cursorposition zu aktualisieren CTRL-L.
not2qubit

Wenn Sie Probleme mit Nano haben, verwenden Sie stattdessen vim
Stas BZ


1

Ich musste ein Debugging für ein Windows Nano- Docker-Image durchführen und den Inhalt einer Datei bearbeiten, wer hätte gedacht, dass es so schwierig ist.

Ich habe eine Kombination aus Get-Contentund Set-Contentund Base 64-Codierung / -Decodierung verwendet, um Dateien zu aktualisieren. Zum Beispiel

Foo.txt bearbeiten

PS C:\app> Set-Content foo.txt "Hello World"                                                                                                                                                                                        
PS C:\app> Get-Content foo.txt                                                                                                                                                                                                      
Hello World                                                                                                                                                                                                                         
PS C:\app> [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("TXkgbmV3IG11bHRpDQpsaW5lIGRvY3VtZW50DQp3aXRoIGFsbCBraW5kcyBvZiBmdW4gc3R1ZmYNCiFAIyVeJSQmXiYoJiopIUAjIw0KLi4ud29ybGQ=")) | Set-Content foo.txt 
PS C:\app> Get-Content foo.txt                                                                                                                                                                                                      
My new multi                                                                                                                                                                                                                        
line document                                                                                                                                                                                                                       
with all kinds of fun stuff                                                                                                                                                                                                         
!@#%^%$&^&(&*)!@##                                                                                                                                                                                                                  
...world                                                                                                                                                                                                                            
PS C:\app>       

Der Trick besteht darin, den decodierten String der Basis 64 an zu leiten Set-Content

[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("...")) | Set-Content foo.txt 

Es ist kein vim, aber ich kann Dateien aktualisieren, für was es wert ist.


0

Nun, es gibt tausend Möglichkeiten, eine Textdatei unter Windows 7 zu bearbeiten. Normalerweise installieren Leute Sublime, Atom und Notepad ++ als Editor. Für die Befehlszeile halte ich den Befehl Basic Edit (der übrigens auf 64-Bit-Computern nicht funktioniert) für gut. Alternativ finde ich den Typ con> filename als eine sehr applaudable Methode. Wenn Windows neu installiert ist und man Notepad vermeiden möchte . Das könnte es sein !! Die perfekte Verwendung von Type als Editor :)

Referenz des Bildes: - https://www.codeproject.com/Articles/34280/How-to-Write-Applet-Code


0

Unter Linux macht mir Nano oder Vim Spaß, ich habe früher Nano und jetzt Vim verwendet, und sie sind wirklich eine gute Wahl. Es gibt eine Version für Windows. Hier ist der Link https://nano-editor.org/dist/win32-support/

Häufiger müssen wir jedoch die betreffende Datei so schnell wie möglich über die Befehlszeile öffnen, um keine Zeit zu verlieren. Wir können notepad.exe verwenden, wir können notepad ++ verwenden und ja, wir können sublimierten Text verwenden . Ich denke, es gibt keinen größeren als einen leichten, zu leistungsstarken Editor. Erhabener Text hier. Für die Sache wollen wir einfach nicht aus der Kommandozeile herauskommen, oder wir wollen die Kommandozeile benutzen, um schnell zu sein. und ja. Dafür können wir erhabenen Text verwenden. Es enthält eine Befehlszeile, mit der Sie schnell eine Datei in erhabenem Text öffnen können. Es gibt auch verschiedene Optionsargumente, die Sie verwenden können. Hier, wie du es machst.

Zuerst müssen Sie wissen, dass es subl.exe gibt . eine Befehlszeilenschnittstelle für sublim.

Geben Sie hier die Bildbeschreibung ein

1-> Zuerst erstellen wir eine Batch-Datei. Der Inhalt ist

Geben Sie hier die Bildbeschreibung ein

@ECHO OFF

"C:\Program Files\Sublime Text 3\subl.exe" %*

Wir können das speichern, wo immer wir wollen. Ich habe es vorgezogen, ein Verzeichnis im Installationsverzeichnis für erhabenen Text zu erstellen. Und dort die Batch-Datei gespeichert, die wir schreiben und erstellen.

(Anmerkung: Ändern Sie den Pfad über der Installation).

2-> Wir fügen diesen Ordner der Umgebungsvariablen des Pfadsystems hinzu. und das ist es.

Geben Sie hier die Bildbeschreibung ein

oder aus der Systemkonfiguration (Windows 7/8/10)

Geben Sie hier die Bildbeschreibung ein

dann:

Geben Sie hier die Bildbeschreibung ein

dann:

Geben Sie hier die Bildbeschreibung ein

dann kopieren wir den Pfad:

Geben Sie hier die Bildbeschreibung ein

dann fügen wir das der Pfadvariablen hinzu:

Geben Sie hier die Bildbeschreibung ein

zu schnell!

Starten Sie ein neues Cmd und jetzt funktioniert der Befehl subl einwandfrei !

Geben Sie hier die Bildbeschreibung ein

Um eine Datei zu öffnen, müssen Sie nur den Befehl subl als Fellow verwenden:

subl myfileToOpen.txt

Sie können auch eines der Optionsargumente verwenden (geben Sie --help ein, um sie wie im obigen Bild anzuzeigen).

Beachten Sie auch, dass Sie dieselbe Methode mit fast jedem Editor Ihrer Wahl anwenden können.


4
Wenn Sie Powershell als Shell anstelle von cmd verwenden, können Sie fügen Sie einfach Set-Alias subl 'C:\Program Files\Sublime Text 3\sublime_text.exe'auf Ihre $PROFILE, weitere Informationen im Profil hier technet.microsoft.com/en-us/library/bb613488(v=vs.85).aspx
Kevin Secrist

0

Sie können Folgendes tun:

bash -c "nano index.html"

Der obige Befehl öffnet die Datei index.html mit dem Nano-Editor in Powershell.

Alternativ können Sie den vim-Editor mit dem folgenden Befehl verwenden

bash -c "vi index.html"

0

Sie sind sich nicht sicher, ob dies jemandem zugute kommt, aber wenn Sie Azure CloudShell PowerShell verwenden, können Sie einfach Folgendes eingeben:

code file.txt

Und Visual Studio-Code wird mit der zu bearbeitenden Datei angezeigt, ziemlich gut.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.