首页 > 解决方案 > 在 Windows PowerShell 中使用文件打开 notepad++

问题描述

我想在 Windows PowerShell 中使用 notepad++ 打开位于网络驱动器上的文本文件。

我创建以下 PS1 文件

Set-Location -Path "C:\Program Files\Notepad++\"
$Targetfile="\\server\path\myfile.txt"
.\Notepad++.exe $Targetfile

错误信息:找不到文件

我可以在 Windows PowerShell 中运行以下命令吗(在 PowerShell 中运行带有路径的 exe 文件)

.\"C:\Program Files\Notepad++\notepad++.exe" "\\server\path\myfile.txt"

标签: windowspowershell

解决方案


笔记:

  • 下面的答案包含有关从 PowerShell 调用可执行文件的一般信息。

  • 您的具体问题可能是以下之一:

    • Notepad++.exe目录中可能缺少可执行文件C:\Program Files\Notepad++

    • 目标文件可能不存在或服务器可能无法访问。

请注意,如果该路径是完整(绝对)路径(如您的第二次尝试),则在可执行路径前加上.\(指当前目录中的文件)在逻辑上毫无意义,并且在实践中失败。
.\"C:\Program Files\Notepad++\notepad++.exe"


如果Notepad++.exe位于$env:PATH环境变量中列出的目录之一中:

# Note: NO ".\" prefix, which is only needed to invoke an executable
#       located in the *current directory*.
Notepad++.exe $TargetFile

如果您需要通过完整路径引用它,则无需使用Set-Location后跟.\- 前缀的调用(除非您确实需要将工作目录作为 Notepad++ 的安装目录)。

要直接通过完整路径调用它,请使用&调用运算符

& "C:\Program Files\Notepad++\notepad++.exe" $TargetFile

请注意,在这种情况下这&必需的,因为您的可执行路径被引用,因为包含嵌入的空格,这是必要的。如上面的第一个命令所示,&如果可执行名称或路径未加引号(并且不包含变量引用),则它是可选的 - 请参阅此答案以获取更多信息。


推荐阅读