Как редактировать текстовые файлы в командной строке Windows?

91

В Unix я бы просто использовал vi , но я не знаю, что это за команда в Windows. Я на самом деле пытаюсь редактировать файлы через SSH с Windows Server 2008.

Casebash
источник
1
Я думаю, что принятый ответ должен быть изменен на squillman (так как он единственный, который будет работать на большинстве современных ПК - и, возможно, внутри контейнеров Docker).
Питер Мортенсен
если вы делаете есть графический рабочий стол , а просто хотите отредактировать файл непосредственно с , cmdто вы можете использовать , например , блокнот сnotepad myfile.txt
ccpizza

Ответы:

51

edit filename

Я не буду ручаться за его функциональность и устаревший графический интерфейс, но он установлен по умолчанию даже в Windows 7.

Изменить: За исключением 64-разрядных версий Windows.

Майк Фицпатрик
источник
13
На всех версиях Windows? В Windows 7, по-видимому, нет «правки».
Снарк
12
Странно ... очевидно, он установлен по умолчанию в Windows 7 32-разрядной, но не в Windows 7 64-разрядной. Печально.
nhinkle
6
@nhinkle: Кажется, я вспомнил, что читал что-то о том, что 16-битные приложения недоступны при установке 64-битных окон.
интуитивно
4
Подтверждено, что НЕ работает в Win 10 ... Я действительно не могу поверить, что в Windows нет таких базовых инструментов, и, кажется, никому нет до этого дела
Рафаэль Т
2
Это просто неправильный ответ, когда речь идет о «Windows» вообще. Сегодня Windows также Win7-64bit, Win8-64bit, Win8.1-64bit, Win10. «Изменить» не может быть правильным ответом на вопрос с сегодняшней точки зрения.
Мердад Мирреза
69

Самое простое решение для всех версий Windows:

C:\> notepad somefile.txt

И никакого дополнительного программного обеспечения не требуется.

BillP3rd
источник
27
Хорошо
4
Ах. Правильно. В Windows нет встроенного редактора командной строки. Возможно, вам потребуется установить версию редактора Gnu, которую вы хотите использовать. Поскольку вы уже установили sshсервер, это не должно быть проблемой для вас.
BillP3rd
8
Как OP сказал ... «Я на самом деле пытаюсь редактировать файлы через ssh ...»
daviewales
7
бесполезный ответ, как для пользователей , SSH и для тех , кто хочет редактировать файлы В CMD окна, а не за его пределами
vladkras
3
Это не будет работать в контейнере Docker на основе 'windowsservercore'
Питер Мортенсен,
42

В командной строке Windows введите copy con и имя целевого файла. ( copy con c:\file.txt).

Затем введите текст, который вы хотите поместить в файл.

Завершите и сохраните файл, нажав CTRL- Zтогда Enterили F6потом Enter.

Если вы хотите изменить текст в существующем файле, просто отобразите текст, используя команду, typeпосле которой следует имя файла, а затем просто скопируйте и вставьте текст в copy conкоманду.

Mordorf
источник
7
Жесткое ядро. Старайтесь не делать опечаток, или вам придется начинать все сначала. Ну, Backspace работает, если вы поймете ошибку, прежде чем нажать Enter.
Кевин Панко
Кажется, не работает с psexec. Попытался отредактировать мой файл hosts с помощью, copy con hostsно ^ Z не сохраняет и ^ C не отменяет! Пришлось закрыть окно cmd, чтобы выйти. Файл не изменился.
Иэн Сэмюэл Маклин Старейшина
Примечание: F6 может использоваться вместо [Ctrl] - [Z]
MonoThreaded
В контейнере Docker, основанном на «windowsservercore» (CMD), Ctrl + C работал для завершающей последовательности клавиш.
Питер Мортенсен
15

Если вы привыкли к vi и не хотите соглашаться на встроенный редактор, вы можете получить Vim для Windows . Он будет работать из командной оболочки. Или попробуйте WinVi .

squillman
источник
это должно быть помечено как ответ, потому что editон был удален из победы 10
Люк
1
Это гораздо лучше, чем это: он также работает внутри контейнера Windows Docker (проще всего получить «исполняемый файл консоли Win32», например, vim81w32.zip - распаковать и скопировать vim.exeтуда, где он доступен в контейнере Docker).
Питер Мортенсен
9

Хотите верьте, хотите нет, EDLIN.EXEпо <shudder>крайней мере , все еще есть в этой системе Vista.

Извините, пока я тихо рыдаю про себя ...

Деннис Уильямсон
источник
6
Он был окончательно удален в Windows 7 (по крайней мере, в 64-битных версиях).
парадоид
1
@ jason404: он все еще включен в 32-битную Windows 7.
Деннис Уильямсон
2
Edlin - 16-битная программа, поэтому она недоступна в 64-битных версиях Windows. Тем не менее, я не удивлюсь, если кто-то здесь
заявит,
1
@ TSJNachos117 Это действительно в x86 Windows 10.
Брайан Дадди
Не удивлен вообще.
TSJNachos117
8

Я не знаю ни о SSH, ни о чем-либо (еще?) Связанном с сервером, так что извините, если это «решение» бесполезно. Если вы хотите редактировать файлы в командной строке, вы можете получить версию Nano для Windows .

В качестве примечания, эти маленькие ^знаки внизу окна должны представлять Ctrlкнопку. Например, ^X Exitозначает, что вы можете выйти из программы, используя Ctrl- X.

Кроме того, Nano иногда добавляет дополнительные символы новой строки при сохранении файлов. Кажется, это какая-то ошибка с переносом слов Нано.

Я также видел порты vi для Windows, хотя я использовал тот, который просто делает окно командной строки настолько маленьким, насколько это возможно, оставляя только строку заголовка (что означает, что остальная часть окна также может быть невидимой , так как вы не можете видеть, что вы делаете). Тем не менее, версия Vim для Windows, кажется, работает довольно хорошо.

TSJNachos117
источник
2
Прежде чем искать тех, кто "может работать, но бесполезные решения", я подумал о порте Windows Nano. Он использует cygwin.dll и ничего более. Я пикетирую самую легкую версию, какую только могу, с netcologne.dl.sourceforge.net/project/nano/nano/1.0.8/… . Спасибо.
erm3nda