使用Powershell在控制台上编辑文本文件


82

我试图找出在控制台中编辑文本文件的最简单方法(在我的案例中为PowerShell)。我正在使用Windows 7 64位。令我感到震惊的是,我不能只是输入edit filename.txt文件来编辑文件。那曾经有用,但是这一切都改变了。在Windows控制台中查看和编辑文本文件有哪些选择,如果您告诉我安装和学习VIM,我将为您加油打气。:-)


1
我可以自由地编辑您的问题,因为它与PowerShell毫无关系。
乔伊(Joey)2012年

2
使用nano ......
scape

Answers:


28

Kinesics文本编辑器

它功能极小,但速度很快,可以处理大型文本文件。其中包含一个GUI版本和控制台版本(k.exe)。在Linux上应该可以正常工作。

示例:在我的测试中,花了7秒打开了500mb的磁盘映像。

屏幕截图


2
+1非常好编辑!顺利打开了2000万点的点云文件!
Adri CS

3
您无需安装。只需运行.exe程序包,它将暂停并显示错误740(需要提升)。记下提取文件的目录,然后将其复制到某处。
Bill_Stewart

23

为什么不使用记事本?

notepad.exe filename.txt

旧版本edit.com可在PowerShell中运行(至少在我的盒子上是:Windows 7 Pro x86),但在x64中由于其16位体系结构而无法正常工作。

您可以看一下这个简单的编辑器。


如果您尝试在本地编辑文件,则可以键入notepad而不是notepad.exe,它将正常工作。您每天只节省了几秒钟:)
Vlad Schnakovszki

记事本对我无声地失败(Windows2019)。它是否真的内置了控制台编辑器,还是试图在无窗口会话中打开窗口?
andrew lorien

21

冒着您一拳打我的风险,我想您会陷于所提到的解决方案。看看有关SuperUser的帖子:

Powershell中的非x文本编辑器有哪些?

此外,还有适用于Windows的nano版本:

纳米编辑器

我现在回避一下,希望有人会给出更充分的答案。


对于需要了解如何从每个目录中使用nano的用户,相关的google搜索是: google.co.uk/… 我个人更喜欢nano而不是运动学,但是个人喜好可能有所不同
Google搜索的结果

你救了我的日子。win32-support中有Windows版本。
彼得L

16

有点复活,但是对于其他任何人,请看一下Micro编辑器。这是一个小型独立EXE,没有依赖项,并且具有本机Windows 32 \ 64版本。在PowerShell和CMD.EXE中都可以很好地工作。

在此处输入图片说明


与k.exe / kit.exe相比,micro.exe处理汉字更好。
pimgeek

但是遗憾的是,micro.exe并不擅长处理Windows文件路径,“打开文件”命令没有提供文件浏览器窗口。
pimgeek

10

我同意斯文·普拉斯Sven Plath)的观点。纳米是一个很好的选择。如果您有Chocolatey设置。通过在Powershell中键入以下内容来安装nano:

PS C:\dev\> choco install nano

然后,要编辑somefile.txt,请输入:

PS C:\dev\> nano somefile.txt

太整齐了!

编辑: Nano在我的Windows 10机器上运行良好,但是在我的Windows 7机器上第一次加载花费了难以置信的时间。那使我在Win 7笔记本电脑上切换到vim(vi)

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

在Powershell配置文件中向Set-Alias添加一条线(sal)

sal vi vim

Esc-:-x-输入:-)


7

您可以安装Far Manager(顺便说一下,是一个很棒的OFM)并按如下方式调用其编辑器:

Far /e filename.txt

感谢文件管理器,距离我上次使用这种类型的文件管理器已经很长时间了,哦,我还记得在学校旧PC上玩的时间:)
Luke

6

如果您使用Windows容器并且想要更改任何文件,则可以在Powershell控制台中轻松获取和使用Vim。

要使用PowerShell脱壳到Windows Docker容器:

docker exec -it <name> powershell

  • 首先获得Chocolatey包装经理

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

  • 安装Vim

    choco install vim

  • 刷新环境变量您只需将exit外壳退回到容器

  • 转到文件位置并Vim vim file.txt


5

从网上安装vim,然后您可以做: vim“ filename”编辑该文件


2
蹩脚的答案,之后OP特别声明,他们并没有想用Vim。-1。
MD XF

11
这不是一个糟糕的答案,因为Google将会领导OP以外的其他人。
布鲁诺·布罗诺斯基

2

我是一位退休的工程师,他在60年代与DOS,Fortran,IBM360等一起成长,与本博客中的其他人一样,我非常想念丢失64位Windows中的命令行编辑器的情况。在花了一个星期浏览互联网并测试编辑器之后,我想分享我最好的解决方案:Notepad ++。它与DOS EDIT相距甚远,但是有一些附带好处。不幸的是,它是屏幕编辑器,需要鼠标,因此运行缓慢。另一方面,它是一个不错的Fortran源代码编辑器,并显示了行号和列号。它可以为要编辑的文件保留多个选项卡,甚至还可以记住光标的最后位置。我当然会继续输入键盘代码(有50年的习惯),但令人惊讶的是至少其中一些能够工作。可能不是文档功能。我将编辑器重命名为EDIT.EXE,设置了它的路径,然后从命令行调用它。还算不错 我正在忍受。顺便说一句,请小心不要在Fortran源代码中使用Tab键。在文本中输入ASCII 6。它是不可见的,至少gFortran无法处理它。Notepad ++可能有很多我没有时间去使用的功能。


2

您可以通过choco将nano安装在powershell中-这是将文本编辑功能纳入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中Windows上的Nano似乎无法识别上/下/左/右键。
not2qubit

您可能应该使用更新版本的nano。choco提供的那台非常旧。然后,为了将其与SSH一起使用,您需要使用-cg标志运行,但无论如何都会丢失光标更新。要更新光标位置的视觉位置,请按CTRL-L
not2qubit

如果您对nano有任何问题,请改用vim
Stas BZ


1

我必须在Windows Nano上进行一些调试 docker映像并且需要编辑文件的内容,而谁会想到这是如此困难。

我使用了Get-ContentSet-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上有1000种编辑文本文件的方法。通常人们将Sublime,Atom和Notepad ++作为编辑器安装。对于命令行,我认为基本编辑命令(通过这种方式在64位计算机上不起作用)是很好的;或者,我发现键入con> filename是一个值得称赞的方法。如果新安装了Windows并且希望避免使用记事本。可能就是这样! 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 ++,是的,我们可以使用sublim文本。我认为没有比轻巧,功能强大的编辑器更好的了。在这里升华文字。对于这一点,我们只是不想离开命令行,或者我们想使用命令行来提高速度。是的。我们可以为此使用崇高的文字。它包含一个命令行,可让您快速以高品质文本打开文件。另外,您还可以使用不同的选项参数。在这里你怎么做。

首先,您需要知道存在subl.exe。sublim的命令行界面。

在此处输入图片说明

1-> 首先,我们创建一个批处理文件。内容是

在此处输入图片说明

@ECHO OFF

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

我们可以随时随地保存它。我更喜欢在崇高的文本安装目录上创建目录。并将我们要编写和创建的批处理文件保存在那里。

(注:更改安装上方的路径)。

2-> 我们将该文件夹添加到路径系统环境变量中。就是这样。

在此处输入图片说明

或从系统配置(Windows 7/8/10)

在此处输入图片说明

然后:

在此处输入图片说明

然后:

在此处输入图片说明

然后我们复制路径:

在此处输入图片说明

然后将其添加到path变量中:

在此处输入图片说明

太快了!

启动一个新的cmd,现在您的subl命令运行良好了!

在此处输入图片说明

打开文件,您只需要使用subl命令即可:

subl myfileToOpen.txt

您还可以使用选项参数之一(键入--help即可如上图所示)。

还要注意,您几乎可以将任意选择的编辑器应用相同的方法。


4
如果你正在使用PowerShell作为你的shell,而不是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
凯文Secrist

0

您可以执行以下操作:

bash -c "nano index.html"

上面的命令使用Powershell中的nano编辑器打开index.html文件。

另外,您可以通过以下命令使用vim编辑器

bash -c "vi index.html"

0

不知道这是否会使任何人受益,但是如果您使用的是Azure CloudShell PowerShell,则可以键入:

code file.txt

并且Visual Studio代码将弹出带有要编辑的文件的信息,非常好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.