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

我正在尝试找出在控制台中编辑文本文件的最简单方法(在我的例子中是 PowerShell)。我用的是 Windows 764位。我不能仅仅输入 edit filename.txt来编辑文件,这让我很恼火。以前是有用的,但现在不一样了。我有什么选择来查看和编辑 Windows 控制台中的文本文件,如果你告诉我安装和学习 VIM,我会打你的脸。:-)

293514 次浏览

为什么不用记事本呢?

notepad.exe filename.txt

旧的 edit.com可以在 PowerShell 中工作(至少在我的机器上是这样的: Windows 7 Pro x86) ,但是在 x64中由于它的16位架构而不能工作。

你可以看看 这个简易编辑器。

冒着被你揍的危险,我想你已经被你提到的解决方案困住了。看看这个超级用户的帖子:

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

此外,还有一个适用于窗口的 nano 版本:

纳米编辑器

我现在就躲起来,希望有人能给出一个更充分的答案。

你可以安装 Far Manager(一个很棒的 OFM,顺便说一句) ,然后像这样调用它的编辑器:

Far /e filename.txt

Kinesics 文本编辑器

它的速度非常快,可以处理大型文本文件,但功能非常少。包括 GUI 版本和控制台版本(k.exe)。在 Linux 上也应该是一样的。

示例: 在我的测试中,打开一个500mb 的磁盘映像需要7秒钟。

screenshot

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

有点复活,但对于任何其他人来到这个问题,看看 编辑器。这是一个小型的独立 EXE,没有依赖关系,并与本地 Windows 3264版本。在 PowerShell 和 CMDEXE 中都能很好地工作。

enter image description here

我同意 斯文 · 普拉斯。Nano 是个不错的选择。如果你使用的是 巧克力味的或者 独家新闻,你可以在 Powershell 输入以下命令来安装 nano:

PS C:\dev\> choco install nano
# --OR--
PS C:\dev\> scoop install nano

然后,要编辑 somfile.txt,输入:

PS C:\dev\> nano somefile.txt

太棒了!

编辑: Nano 在我的 Windows10机器上运行良好,但是在我的 Windows7机器上第一次加载要花费很长的时间。这使我在 Win 7笔记本电脑上切换到 vim (vi)

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

在 powershell 配置文件中为 Set-Alias (sal)添加一行

sal vi vim

Esc-:-x-Enter: -)

我觉得你可以用记事本,像这样:

notepad myfile.extension

它应该在记事本上打开。

在 Windows7上编辑文本文件的方法有成千上万种。 通常人们安装 Sublime,Atom 和 Notepad + + 作为编辑器。 对于命令行,我认为基本编辑命令(顺便说一下,它在64位计算机上不起作用)是好的; 或者,我发现类型 con > filename 是一个非常值得称赞的方法。如果 Windows 是新安装的,One 想避免使用记事本。可能就是这里了! Type 作为编辑器的完美用法:)

图片来源:-https://www.codeproject.com/Articles/34280/How-to-Write-Applet-Code

我不得不对 Windows Nano Docker 映像进行一些调试,并需要编辑文件的内容,谁会想到这是如此困难。

我使用了 Get-ContentSet-Content以及基数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

它没有生命,但我可以更新文件,为它的价值。

在 linux 里,我很喜欢 Nano 或者 vim,我以前用 Nano,现在用 vim,它们都是很好的选择。有一个版本的窗口。这里是链接 https://nano-editor.org/dist/win32-support/

但是更多时候,我们需要从命令行尽可能快地打开有问题的文件,以免浪费时间。我们可以使用 notepad.exe,我们可以使用 notepad + + ,是的,我们可以使用 升华文本。我认为没有比一个轻量级的,太强大的编辑更伟大的了。这里有超赞的文字。对于这件事,我们只是不想离开命令行,或者我们希望使用命令行来加快速度。是的。我们可以使用崇高的文本。它包含一个命令行,让您快速打开一个文件在崇高的文本。此外,还可以使用不同的选项参数。看你怎么做。

首先,您需要知道 sublim 有一个 Subl.exe.a 命令行接口。

enter image description here

1-> < strong > 首先我们创建一个批处理文件

enter image description here

@ECHO OFF


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

我们可以把它留在任何我们想要的地方。我更喜欢在卓越文本安装目录上创建一个目录。并保存在那里的批处理文件,我们来写和创建。

(备注: 更改安装前的路径)。

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

enter image description here

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

enter image description here

然后:

enter image description here

然后:

enter image description here

然后我们复制路径:

enter image description here

然后我们把它添加到 path 变量:

enter image description here

太快了!

启动一个新的 cmd,现在你已经有 Subl命令工作得很好!

enter image description here

要打开一个文件,你只需要使用 Subl命令作为伙伴:

subl myfileToOpen.txt

您还可以使用其中一个选项参数(type —— help 查看它们,如上图所示)。

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

我是一个退休的工程师,在60年代随着 DOS,Fortran,ibm360等等一起长大,像这个博客上的其他人一样,我非常怀念在64位 Windows 系统中丢失命令行编辑器的日子。在花了一个星期浏览互联网和测试编辑后,我想分享我最好的解决方案: 记事本 + + 。它与 DOS 编辑相去甚远,但是有一些附带的好处。不幸的是,它是一个屏幕编辑器,需要一个鼠标,因此是缓慢的。另一方面,它是一个不错的 Fortran 源代码编辑器,并显示了行号和列号。它可以为正在编辑的文件保留多个标签,甚至可以记住光标最后一次出现的位置。当然,我一直在输入键盘代码(这是我50年来的习惯) ,但令人惊讶的是,其中至少有一些还能用。也许不是记录在案的特征。我将编辑器重命名为 EDIT.EXE,设置到它的路径,并从命令行调用它。还不错。我已经习惯了。顺便说一下,注意不要在 Fortran 源代码中使用 tab 键。在文本中放置 ASCII 6。它是隐形的,至少 gFortran 无法处理它。记事本 + + 可能有很多功能,我没有时间搞乱。

如果你使用的是 Windows 容器,并且你想要更改任何文件,你可以很容易地在 Powershell 控制台中获取并使用 Vim。

使用 PowerShell 对 Windows Docker 容器进行 shell 处理:

docker exec -it <name> powershell

  • 先找巧克力包装经理

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

  • 安装 Vim

    choco install vim

  • 刷新环境变量 您可以将 exit和 shell 返回到容器

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

你可以通过 Choco 在 powershell 中安装 nano-这是一种低摩擦的方式,可以让 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

最好的部分是它成为路径的一部分,并在重新启动时继续工作等:)

你可以这样做:

bash -c "nano index.html"

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

或者,您也可以通过以下命令使用 vim 编辑器

bash -c "vi index.html"

不知道这是否对任何人都有好处,但是如果你正在使用 Azure CloudShell PowerShell,你只需要输入:

code file.txt

而且 VisualStudio 代码会弹出来与要编辑的文件一起,相当不错。

如果您有用于 linux (wsl)的 windows 子系统,您会发现以下命令非常有用:

bash -c "vi filename.txt"

遗憾的是 powershell 没有内置控制台文本编辑器。 你可以重定向标准输入,比如:

# write text and overwrite the file with that text
"my text that will appear in the file" > file.txt

对于任何更复杂的你将需要一个包装经理巧克力

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

并安装下列任何一种编辑器:

纳诺

choco install nano

问题

  • 落地窗很慢
  • 箭头控制问题

维姆

choco install vim

问题

  • 没有重大问题,只要记住 esc + :!qa将退出 Vim