Відредагуйте текстовий файл на консолі за допомогою Powershell


85

Я намагаюся зрозуміти найпростіший спосіб редагування текстових файлів у консолі (у моєму випадку PowerShell). Я використовую Windows 7 64 bit. Мене бентежить, що я не можу просто вводити текст edit filename.txtдля редагування файлу. Раніше це працювало, але це все змінилося. Які у мене варіанти перегляду та редагування текстових файлів на консолі Windows, і якщо ви скажете мені встановити та вивчити VIM, я нанесу вам удар по обличчю. :-)


1
Я дозволив собі відредагувати ваше запитання, оскільки воно взагалі не має нічого спільного з PowerShell.
Joey

2
use nano ......
scape

Відповіді:


28

Текстовий редактор Kinesics .

Це надзвичайно швидко і обробляє великі текстові файли, хоча і мінімальні за функціями. Є версія графічного інтерфейсу та версія консолі (k.exe). Повинна працювати так само на Linux.

Приклад: У моєму тесті на відкриття образу диска розміром 500 Мб знадобилося 7 секунд.

скріншот


2
+1 Дуже приємний редактор! Плавно відкрив хмарний файл із 20 мільйонами точок!
Adri CS

3
Вам не потрібно встановлювати. Просто запустіть пакет .exe, і він призупинить помилку 740 (потрібне підвищення). Зверніть увагу на каталог, куди він витягнув файли, і скопіюйте їх десь.
Bill_Stewart

25

Чому б не використовувати блокнот?

notepad.exe filename.txt

Старий edit.comпрацює в PowerShell (принаймні в моєму вікні: Windows 7 Pro x86), але в x64 він не працює через свою 16-бітну архітектуру.

Ви можете поглянути на цей простий редактор.


Якщо ви намагаєтесь редагувати файл локально, ви можете просто ввести блокнот замість notepad.exe, і він буде працювати нормально. Ви просто заощадили кілька секунд щодня :)
Влад Шнаковські

1
блокнот для мене мовчки виходить з ладу (Windows2019). Чи справді в нього вбудований редактор консолі, чи він намагається відкрити вікно в сеансі без вікон?
andrew lorien

21

Ризикуючи, що ти мене вдариш, я думаю, ти застряг у вирішенні, про яке ти згадав. Погляньте на цю публікацію на SuperUser:

Якими є текстові редактори, що не є х, у Powershell?

Крім того, існує нано-версія для Windows:

Nano Editor

Я зараз качу і покриваю, сподіваюся, хтось отримає більш достатню відповідь.


Для користувачів, які повинні знати, як змусити нано працювати з кожного каталогу, відповідний пошук у Google: google.co.uk/... Я особисто віддаю перевагу нано-кинезиці, але індивідуальні уподобання можуть відрізнятися
Пітер Девід Картер

Ти врятував мій день. Існує версія Windows у підтримці win32 .
Peter L

16

Трохи воскресимо, але для тих, хто приходить до цього питання, погляньте на редактор Micro . Це невеликий автономний EXE без залежностей і з власними версіями Windows 32 \ 64. Добре працює як в PowerShell, так і в CMD.EXE.

введіть тут опис зображення


micro.exe обробляє китайські символи краще, ніж k.exe / kit.exe.
pimgeek

але, на жаль, micro.exe погано обробляє шлях до файлу Windows, команда "відкрити файл" не надає вікно провідника файлів.
pimgeek

10

Я згоден зі Свеном Платом . Nano - чудова альтернатива. Якщо у вас є шоколадне налаштування. Встановіть nano, набравши в Powershell наступне:

PS C:\dev\> choco install nano

Потім для редагування somefile.txt введіть:

PS C:\dev\> nano somefile.txt

Це досить акуратно!

Редагувати: Nano добре працює на моєму Windows 10 box, але займає неймовірно багато часу для першого завантаження на моїй машині Windows 7. Це змусило мене перейти на vim (vi) на своєму ноутбуці Win 7

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

Додайте рядок у профілі PowerShell до Set-Alias ​​(sal)

sal vi vim

Esc -: - x - Enter :-)


7

Ви можете встановити Far Manager ( до речі, чудовий OFM ) і зателефонувати його редактору так:

Far /e filename.txt

спасибі за файловий менеджер, це довгий час з останнього часу я використовував цей тип файлового менеджера, Оо, я пам'ятаю часи грали на шкільному старому комп'ютері :)
Luke

6

Якщо ви використовуєте контейнер Windows і хочете змінити будь-який файл, ви можете легко отримати та використовувати Vim у консолі Powershell.

Для обстрілу контейнера Windows Docker за допомогою PowerShell:

docker exec -it <name> powershell

  • Спочатку завітайте до менеджера пакетів Chocolatey

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

  • Встановіть Vim

    choco install vim

  • Оновити ЕКОЛОГІЧНУ ЗМІННУ Ви можете просто exitповернутися до контейнера

  • Перейдіть до розташування файлу та вим vim file.txt


5

встановіть vim з Інтернету, і тоді ви можете просто зробити: vim "ім'я файлу", щоб відредагувати цей файл


2
Безглузда відповідь, після того, як ОП спеціально заявив, що вони не хочуть використовувати Vim. -1.
MD XF

11
Не гарна відповідь, оскільки Google веде сюди людей, окрім ОП.
Бруно Броноскі

3

Ви можете встановити nano у PowerShell через Choco - це спосіб зменшити тертя, щоб отримати можливості редагування тексту в PowerShell:

  1. Встановіть Choco
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
  1. Встановіть Nano
choco install nano
  1. Прибуток
nano myfile.txt

Найкраще - це стає частиною шляху, і залишається працювати при перезавантаженні тощо :)


Нано на вікнах у віддаленій PowerShell, здається, не розпізнає клавіші вгору / вниз / вліво / вправо.
not2qubit

Ймовірно, вам слід скористатися більш пізньою версією nano. Той, який надає чоко , дуже старий. Тоді для того, щоб використовувати його з SSH, вам потрібно запустити -cgпрапорці, але в будь-якому випадку оновлення курсору буде втрачено. Щоб оновити візуальне положення розташування курсору, натисніть CTRL-L.
not2qubit

Якщо у вас виникли проблеми з нано, використовуйте замість цього vim
Stas BZ

2

Я інженер-пенсіонер, який виріс у 60-х за допомогою DOS, Fortran, IBM360 тощо. Як і інші в цьому блозі, я дуже сумую за втратою редактора командного рядка в 64-розрядної Windows. Провівши тиждень, переглядаючи Інтернет та тестуючи редактори, я хотів поділитися своїм найкращим рішенням: Notepad ++. Це далеко не DOS EDIT, але є деякі побічні переваги. На жаль, це редактор екрану, вимагає миші і, отже, повільний. З іншого боку, це гідний редактор джерел Fortran і відображає номери рядків і стовпців. Він може зберігати кілька вкладок для файлів, які редагуються, і навіть запам'ятовує, де курсор був останнім. Я, звичайно, продовжую вводити коди клавіатури (50 років звички), але на диво, принаймні деякі з них працюють. Можливо, не задокументована особливість. Я перейменував редактор в EDIT.EXE, встановив шлях до нього та викликав його з командного рядка. Це не так вже й погано. Я живу з цим. До речі, будьте обережні, щоб не використовувати клавішу табуляції у джерелі Fortran. Поміщує ASCII 6 в текст. Це невидимо, і gFortran, принаймні, не може з цим впоратися. Notepad ++, мабуть, має багато функцій, з якими я не встигаю возитися.


1

Я думаю, ви могли б просто використовувати блокнот, наприклад:

notepad myfile.extension

Він повинен відкриватися в блокноті.


яка різниця до вже існуючої відповіді stackoverflow.com/a/11045112/2442804 ?
luk2302

1

Мені довелося виконати налагодження на зображенні докера Windows Nano і мені потрібно було відредагувати вміст файлу, хто б здогадався, що це було так складно.

Для оновлення файлів я використовував комбінацію кодування / декодування Get-Contentand Set-Contentта base 64. Наприклад

Редагування foo.txt

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>       

Фокус полягає в тому, щоб прокласти базовий 64 декодований рядок Set-Content

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

Це не vim, але я можу оновлювати файли, для чого це варте.


0

Ну, існує тисяча способів редагувати текстовий файл у Windows 7. Зазвичай люди встановлюють Sublime, Atom та Notepad ++ як редактор. Для командного рядка я думаю, що команда Basic Edit (до речі, яка не працює на 64-розрядних комп'ютерах) хороша; В якості альтернативи я знаходжу тип con> ім'я файлу як дуже схвальний метод. . Це може бути це !! Ідеальне використання Type як редактора :)

посилання на зображення: - https://www.codeproject.com/Articles/34280/How-to-Write-Applet-Code


0

У Linux я захоплююся Nano або vim, я раніше використовував nano, а тепер vim, і вони дійсно є хорошим вибором. Існує версія для Windows. Ось посилання https://nano-editor.org/dist/win32-support/

Однак частіше нам потрібно відкрити відповідний файл із командного рядка якомога швидше, щоб не втрачати час. Ми можемо використовувати notepad.exe, ми можемо використовувати notepad ++, і так, ми можемо використовувати підсвідомий текст . Я думаю, що немає більшого, ніж легкий, надто потужний редактор. Піднесений текст тут. по суті, ми просто не хочемо виходити з командного рядка, або ми хочемо використовувати командний рядок, щоб бути швидким. і так. Для цього ми можемо використовувати піднесений текст. він містить командний рядок, що дозволяє швидко відкрити файл у піднесеному тексті. Також є різні варіанти аргументів, якими ви можете скористатися. Ось як ви це робите.

Спочатку потрібно знати, що існує subl.exe . інтерфейс командного рядка для sublim.

введіть тут опис зображення

1-> спочатку ми створюємо пакетний файл. зміст є

введіть тут опис зображення

@ECHO OFF

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

Ми можемо зберегти це де завгодно. Я вважав за краще створити каталог у каталозі піднесеного текстового встановлення. І зберегли там командний файл, який ми приходимо писати і створювати.

(Примітка: змініть шлях, наведений вище, не відповідаючи встановленню).

2-> ми додаємо цю папку до змінної системного середовища шляху. і це все.

введіть тут опис зображення

або з конфігурації системи (Windows 7/8/10)

введіть тут опис зображення

тоді:

введіть тут опис зображення

тоді:

введіть тут опис зображення

тоді ми копіюємо шлях:

введіть тут опис зображення

тоді ми додаємо це до змінної шляху:

введіть тут опис зображення

занадто швидко!

запустіть новий cmd і тепер у вас команда subl працює добре!

введіть тут опис зображення

щоб відкрити файл, вам просто потрібно використати команду subl як побратима:

subl myfileToOpen.txt

Ви також можете використовувати один з аргументів параметрів (введіть --help, щоб побачити їх, як на зображенні вище).

Також зауважте, що ви можете застосувати один і той же метод переважно до будь-якого редактора на ваш вибір.


4
Якщо ви використовуєте PowerShell як свою оболонку замість cmd, ви можете просто додати Set-Alias subl 'C:\Program Files\Sublime Text 3\sublime_text.exe'до свого $PROFILE, більше інформації про профіль тут, technet.microsoft.com/en-us/library/bb613488(v=vs.85).aspx
Кевін Секріст

0

Ви можете зробити наступне:

bash -c "nano index.html"

Наведена вище команда відкриває файл index.html за допомогою редактора nano в Powershell.

Крім того, ви можете використовувати редактор vim з наступною командою

bash -c "vi index.html"

0

Не впевнений, чи буде це комусь на користь, але якщо ви використовуєте Azure CloudShell PowerShell, ви можете просто ввести:

code file.txt

І код Visual Studio буде спливаючим разом із файлом для редагування, досить чудово.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.