从PowerShell打开Notepad++

59

我怎样能够在Powershell命令行下使用Notepad++打开文件?


2
@martineau:实际上,这个问题对于从PowerShell中打开Notepad++中的任何文件非常有帮助。只是说一下... - Scotty.NET
1
我们能否编辑这个规范问题,使其不再与Python有关?它与Python无关... - Kellen Stuart
7个回答

98

在 PowerShell 中,我可以使用“start”命令并获取一般结果

以使用 Notepad++ 打开 Python 文件,这是我所做的。

Start notepad++ ex1.py

假设您在与 .py 文件相同的目录中,这将启动 Notepad++ 并加载文件 ex1.py。您可以通过添加完整路径名来更改该位置。

start notepad++ c:\users\you\desktop\files\ex1.py

4
在更大的范围内,Start可以打开任何带有任何参数的.exe程序。 - Kellen Stuart
有没有想法如果文件太大怎么进行管道传输?我尝试过:Get-Content "ids_2020-02-01.jsonl" -Tail 100 | Start notepad++,但是没有成功。 - Rafs
你可以使用notepad++ -openFoldersAsWorkspace .命令将一个目录作为工作区打开(这将把当前目录作为工作区打开.. 如果需要,将.替换为另一个目录的路径)。 - undefined

6

由于默认路径包含空格,因此必须将exe的路径加引号。然而,由于PowerShell也是一种脚本语言,如果只是一个字符串,则会被简单地视为一个字符串,例如:

C:\ PS> 'Hello world'
Hello world

所以,您需要告诉PowerShell您要调用由字符串命名的命令。为此,您可以使用调用运算符&,例如:

C:\ PS> & 'C:\Program Files (x86)\Notepad++\notepad++.exe'

或者,如果notepad++已经在你的路径中:

  C:\ PS> notepad++

或者如果你在exe文件所在的同一目录下:

  C:\ PS> .\notepad++

好的。假设我有一个目录里面有一些py文件。如何从PowerShell中使用Notepad++打开它们? - Concerned_Citizen

3

打开Notepad++并在当前路径下创建一个新的空文件

start notepad++ newFile.txt

打开已有文件的Notepad++

start notepad++ apples.txt

指定路径并打开多个文件

start notepad++ fruits/apples.txt, fruits/oranges.txt, package.json

2

为了进一步解释之前的答案并将它们整理得井井有条: 如果您想打开一个在路径或名称中包含空格的文件:

. 'C:\Program Files (x86)\Notepad++\notepad++.exe' 'C:\Temp\File With Spaces.txt' 

或者

& 'C:\Program Files (x86)\Notepad++\notepad++.exe' 'C:\Temp\File With Spaces.txt'

它也可以被设置为别名:

Set-Alias -Value 'C:\Program Files (x86)\Notepad++\notepad++.exe' -Name 'NotePad'
$FileWithSpaces = 'C:\T e m p\File With Spaces.txt'
NotePad $FileWithSpaces

这里的顶行可以复制到您的$Profile .ps1文件中的一个,这样您就不需要在每个新的PS实例中使用Set-Alias了。

如果我有一个存储在$variable变量中的文件名,它似乎不能以相同的方式工作。 - jag
我并不完全确定我理解了这个问题,但这可能会在一定程度上回答它。$FileWithSpaces = 'C:\Temp\File With'
$Spaces = ' Spaces.txt' . 'C:\Program Files (x86)\Notepad++\notepad++.exe' $FileWithSpaces$Spaces
- ScriptMonkey

2

编辑您的个人资料并添加别名

Set-Alias -name 'npp' -value 'C:\Program Files\Notepad++\notepad++.exe'

然后:

npp c:\temp\test.txt

编辑你的配置文件:

npp $profile

等等。


0

我知道这是一个老问题,但我偶然发现了一个解决方法,而且非常简单。如果你通过Chocolatey(类似于 Windows 上的 apt-get,但建立在 NuGet 之上)安装和维护 Notepad++,那么你就会得到一个可以从命令行调用的 shim。

cinst notepad++

即使您已经安装了Notepad,您仍然可以从Chocolatey“安装”它,并将其拉入现有的安装并维护它。
我尽可能使用Chocolatey,因为您可以一次性更新所有内容。
之后,从PowerShell编辑东西就像小菜一碟。比如我的PowerShell配置文件:
notepad++ $PROFILE

希望这能帮助到某些人,或者是多个人!

0
在我的情况下,我想使用文件作为参数以管理员身份启动Notepad++。我想打开其中一个PowerShell配置文件。我不得不使用以下命令变体:
start-process -Verb runas -filepath "C:\Program Files (x86)\Notepad++\notepad++.exe"  "`"$($PROFILE.AllUsersAllHosts)`""

所有其他变体都没有起作用,我认为是由于要打开的文件路径中有空格。因此,您必须将"转义为:
"He said `"This is fun.`""

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接