Powershell kullanarak konsoldaki bir metin dosyasını düzenleyin


85

Konsolda metin dosyalarını düzenlemenin en kolay yolunu bulmaya çalışıyorum (benim durumumda PowerShell). Windows 7 64 bit kullanıyorum. edit filename.txtBir dosyayı düzenlemek için yazamamak beni sinirlendiriyor . Eskiden işe yarardı, ama hepsi değişti. Windows konsolunda metin dosyalarını görüntüleme ve düzenleme seçeneklerim nelerdir ve bana VIM'i kurup öğrenmemi söylerseniz suratınıza yumruk atacağım. :-)


1
Sorunuzu düzenleme özgürlüğünü aldım çünkü PowerShell ile hiçbir ilgisi yok.
Joey

2
nano kullan ......
scape

Yanıtlar:


28

Kinesics Metin Düzenleyicisi .

Süper hızlıdır ve çok az özellikte olsa da büyük metin dosyalarını işler. Bir GUI sürümü ve konsol sürümü (k.exe) dahildir. Linux'ta da aynı şekilde çalışmalı.

Örnek: Testimde 500mb'lik bir disk görüntüsünü açmak 7 saniye sürdü.

ekran görüntüsü


2
+1 Çok güzel editör! Sorunsuz bir şekilde 20 milyon puanlık nokta bulutu dosyasını açtı!
Adri CS

3
Yüklemenize gerek yok. Sadece .exe paketini çalıştırın ve 740 hatasıyla duraklatılacaktır (yükseltme gerektirir). Dosyaları çıkardığı dizini not alın ve bir yere kopyalayın.
Bill_Stewart

25

Neden not defteri kullanmıyorsunuz?

notepad.exe filename.txt

Eski edit.comPowerShell'de çalışıyor (en azından benim kutumda: Windows 7 Pro x86) ancak x64'te 16 bit mimarisi nedeniyle çalışmıyor.

Bu kolay düzenleyiciye bir göz atabilirsiniz .


Bir dosyayı yerel olarak düzenlemeye çalışıyorsanız, notepad.exe yerine notepad yazabilirsiniz ve sorunsuz çalışacaktır. Her gün birkaç saniye
kazandınız

1
not defteri benim için sessizce başarısız oluyor (Windows2019). Gerçekten yerleşik bir konsol düzenleyiciye sahip mi yoksa penceresiz bir oturumda bir pencere açmaya mı çalışıyor?
andrew lorien

21

Beni yumruklamanı riske atarken, sanırım bahsettiğin çözüme bağlı kaldın. SuperUser'daki bu gönderiye bir göz atın:

Powershell'deki x olmayan metin editörleri hangileridir?

Ayrıca, Windows için bir nano sürümü vardır:

Nano Düzenleyici

Şimdi eğilip bakacağım, umarım birinin daha yeterli bir cevabı olur.


Her dizinden nano'yu nasıl çalıştıracaklarını bilmesi gereken kullanıcılar için ilgili google arama: google.co.uk/… Şahsen nano'yu kinetiklere tercih ederim ancak kişisel tercihler değişebilir
Peter David Carter

Günümü kurtardın. Win32 desteğinde bir Windows sürümü var .
Peter L

16

Biraz diriltildi ama bu soruya gelen başka biri için Mikro düzenleyiciye bir göz atın . Bağımlılığı olmayan ve yerel Windows 32 \ 64 sürümleriyle küçük, bağımsız bir EXE dosyasıdır. Hem PowerShell hem de CMD.EXE'de iyi çalışır.

görüntü açıklamasını buraya girin


micro.exe, Çince karakterleri k.exe / kit.exe'den daha iyi işler.
pimgeek

ancak ne yazık ki, micro.exe Windows dosya yolunu işlemede iyi değil, "dosya aç" komutu bir dosya gezgini penceresi sağlamıyor.
pimgeek

10

Sven Plath'a katılıyorum . Nano harika bir alternatiftir. Eğer varsa chocolatey kurulumu. Powershell'de aşağıdakileri yazarak nano'yu kurun:

PS C:\dev\> choco install nano

Ardından, somefile.txt dosyasını düzenlemek için şunu girin:

PS C:\dev\> nano somefile.txt

Oldukça temiz!

Düzenleme: Nano, Windows 10 kutumda iyi çalışıyor ancak Windows 7 makineme ilk kez yüklenmesi inanılmaz derecede uzun sürüyor. Bu, Win 7 dizüstü bilgisayarımda vim (vi) 'e geçmemi sağladı

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

Powershell profiline Set-Alias'a (sal) bir satır ekleyin

sal vi vim

Esc -: - x - Gir :-)


7

Far Manager'ı ( bu arada harika bir OFM) kurabilir ve editörünü şöyle çağırabilirsiniz:

Far /e filename.txt

dosya yöneticisi için teşekkürler, bu tür bir dosya yöneticisini en son kullandığım zamandan beri uzun zaman oldu, Ohh, okulun eski PC'sinde oynadığım zamanları hatırlıyorum :)
Luke

6

Windows kapsayıcı kullanıyorsanız ve herhangi bir dosyayı değiştirmek istiyorsanız, Powershell konsolunda Vim'i kolayca alıp kullanabilirsiniz.

PowerShell ile Windows Docker kapsayıcısına kabuk oluşturmak için:

docker exec -it <name> powershell

  • Önce Chocolatey paket yöneticisini edinin

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

  • Vim'i yükle

    choco install vim

  • ÇEVRESEL DEĞİŞKENİ yenileyin Sadece exitkonteynere geri dönebilirsiniz

  • Dosya konumuna gidin ve onu Vim vim file.txt


5

vim'i çevrimiçi olarak yükleyin ve ardından şunu yapabilirsiniz: vim "dosya adı" bu dosyayı düzenlemek için


2
Berbat cevap, OP sonra özellikle belirtilmediği yaptılar değil Vim kullanmak istiyorum. -1.
MD XF

11
Saçma bir cevap değil çünkü Google burada OP dışındaki insanlara liderlik edecek.
Bruno Bronosky

3

Nano'yu powershell'e choco aracılığıyla yükleyebilirsiniz - Bu, powershell'e metin düzenleme yetenekleri kazandırmanın düşük sürtünmeli bir yoludur:

  1. Choco'yu yükleyin
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
  1. Nano’yu yükleyin
choco install nano
  1. Kar
nano myfile.txt

En iyi yanı, yolun bir parçası haline gelmesi ve yeniden başlatmalarda vb.


Uzak powershell'deki pencerelerdeki Nano, yukarı / aşağı / sol / sağ tuşlarını tanımıyor gibi görünüyor.
not2qubit

Muhtemelen nano'nun daha yeni bir sürümünü kullanmalısınız . Choco tarafından sağlanan çok eskidir. Daha sonra SSH ile kullanmak için -cgbayraklarla çalıştırmanız gerekir, ancak yine de imleç güncellemesini kaybedeceksiniz. İmleç konumunun görsel konumunu güncellemek için tuşuna basın CTRL-L.
not2qubit

Nano ile herhangi bir sorununuz varsa bunun yerine vim'i kullanın
Stas BZ

2

60'larda DOS, Fortran, IBM360 vb. İle büyüyen emekli bir mühendisim ve bu blogdaki diğerleri gibi 64-bit Windows'ta bir komut satırı düzenleyicisinin kaybını çok özlüyorum. İnternette gezinerek ve editörleri test ederek bir hafta geçirdikten sonra, en iyi çözümümü paylaşmak istedim: Notepad ++. DOS EDIT'ten çok uzak, ancak bazı yan faydaları var. Maalesef bir ekran editörüdür, bir fare gerektirir ve dolayısıyla yavaştır. Öte yandan, iyi bir Fortran kaynak editörüdür ve görüntülenen satır ve sütun numaralarına sahiptir. Düzenlenmekte olan dosyalar için birden fazla sekme tutabilir ve hatta imlecin en son nerede olduğunu hatırlayabilir. Tabii ki klavye kodlarını yazmaya devam ediyorum (50 yıllık alışkanlık) ama şaşırtıcı bir şekilde en azından bazıları çalışıyor. Belgelenmiş bir özellik olmayabilir. Düzenleyiciyi EDIT.EXE olarak yeniden adlandırdım, ona bir yol belirledim ve komut satırından çağırdım. Fena değil. Onunla yaşıyorum BTW, Fortran kaynağında sekme anahtarını kullanmamaya dikkat edin. Metne bir ASCII 6 koyar. Görünmezdir ve en azından gFortran bununla başa çıkamaz. Notepad ++ muhtemelen uğraşacak zamanım olmayan birçok özelliğe sahiptir.



1

Bir Windows Nano docker görüntüsünde biraz hata ayıklama yapmak zorunda kaldım ve bir dosyanın içeriğini düzenlemem gerekiyordu, kimin çok zor olduğunu tahmin edebilirdi.

Ben bir arada kullanılan Get-Contentve Set-Contentgüncelleme dosyalarının çözme için / ve baz 64 kodlama. Örneğin

Foo.txt dosyasını düzenleme

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>       

İşin püf noktası 64 temel kodu çözülmüş dizgiyi Set-Content

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

Vim yok ama dosyaları değeri ne olursa olsun güncelleyebilirim.


0

Windows 7'de bir Metin dosyasını düzenlemenin binlerce yolu vardır. Genellikle insanlar Sublime, Atom ve Notepad ++ 'ı bir editör olarak yüklerler. Komut satırı için Temel Düzenleme komutunun (64 bit bilgisayarlarda çalışmayan) iyi olduğunu düşünüyorum; Alternatif olarak con> filename tipini çok Alkışlanacak bir yöntem olarak buluyorum. . Bu o olabilir !! Type'ın editör olarak mükemmel kullanımı :)

Görselin referansı: - https://www.codeproject.com/Articles/34280/How-to-Write-Applet-Code


0

Linux'ta Nano veya vim ile eğleniyorum, eskiden nano kullanıyordum ve şimdi vim kullanıyordum ve bunlar gerçekten iyi seçimler. Windows için bir sürüm var. İşte bağlantı https://nano-editor.org/dist/win32-support/

Bununla birlikte, daha sık, zaman kaybetmemek için söz konusu dosyayı komut satırından olabildiğince çabuk açmamız gerekir. Notepad.exe kullanabiliriz, notepad ++ kullanabiliriz ve evet, sublim text kullanabiliriz . Bence hafif, çok güçlü bir editörden daha fazlası yoktur. Yüce metin buraya. mesele için, sadece komut satırından çıkmak istemiyoruz veya hızlı olmak için komut satırını kullanmak istiyoruz. ve evet. Bunun için yüce metin kullanabiliriz. bir dosyayı hızlı bir şekilde yüce metin olarak açmanıza izin veren bir komut satırı içerir. Ayrıca kullanabileceğiniz farklı seçenekler argümanları vardır. İşte nasıl yapıyorsun.

Öncelikle subl.exe olduğunu bilmeniz gerekir . sublim için bir komut satırı arayüzü.

görüntü açıklamasını buraya girin

1-> önce bir toplu iş dosyası oluşturuyoruz. içerik

görüntü açıklamasını buraya girin

@ECHO OFF

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

Bunu istediğimiz yere kaydedebiliriz. Sublime text kurulum dizininde bir dizin oluşturmayı tercih ettim. Ve orada yazmaya ve oluşturmaya geldiğimiz toplu iş dosyasını kaydettik.

(Not: Kurulumunuzun ardından yukarıdaki yolu değiştirin).

2-> bu klasörü path sistem ortam değişkenine ekliyoruz. ve bu kadar.

görüntü açıklamasını buraya girin

veya sistem yapılandırmasından (Windows 7/8/10)

görüntü açıklamasını buraya girin

sonra:

görüntü açıklamasını buraya girin

sonra:

görüntü açıklamasını buraya girin

sonra yolu kopyalıyoruz:

görüntü açıklamasını buraya girin

sonra bunu yol değişkenine ekliyoruz:

görüntü açıklamasını buraya girin

çok hızlı!

yeni bir cmd başlatın ve şimdi düzgün çalışan subl komutunuz var !

görüntü açıklamasını buraya girin

bir dosyayı açmak için sadece subl komutunu fellow olarak kullanmanız gerekir :

subl myfileToOpen.txt

Ayrıca seçenekler bağımsız değişkenlerinden birini de kullanabilirsiniz (bunları yukarıdaki resimde olduğu gibi görmek için --help yazın).

Ayrıca, aynı yöntemi çoğunlukla seçtiğiniz herhangi bir düzenleyicide uygulayabileceğinizi unutmayın.


4
Yerine cmd sizin kabuk olarak powershell kullanıyorsanız, sadece ekleyebilir Set-Alias subl 'C:\Program Files\Sublime Text 3\sublime_text.exe'sizin için $PROFILEburada profilinizde, daha fazla bilgi technet.microsoft.com/en-us/library/bb613488(v=vs.85).aspx
Kevin Secrist

0

Aşağıdakileri yapabilirsiniz:

bash -c "nano index.html"

Yukarıdaki komut, Powershell içindeki nano düzenleyiciyle index.html dosyasını açar.

Alternatif olarak, aşağıdaki komutla vim düzenleyiciyi kullanabilirsiniz.

bash -c "vi index.html"

0

Bunun kimseye fayda sağlayacağından emin değilim, ancak Azure CloudShell PowerShell kullanıyorsanız şunu yazabilirsiniz:

code file.txt

Ve Visual Studio kodu düzenlenecek dosyayla açılır, oldukça harika.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.