当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 打开文件 |打开文件命令的语法和参数

作者:精品下载站 日期:2024-12-14 04:48:01 浏览:16 分类:玩电脑

PowerShell 打开文件 |打开文件命令的语法和参数


[玩转系统] PowerShell 打开文件 |打开文件命令的语法和参数

PowerShell 打开文件的定义

PowerShell 打开文件命令旨在使用 PowerShell cmdlet 或使用 .Net 命名空间打开文件,文件打开后,可以通过读取单行或整个内容、写入内容来读取文件内容到文件然后关闭文件结束打开文件的运行过程,这些文件可以是各种类型,如TEXT、JSON、XML等。

语法:

使用 Get-Content 打开并读取文件。

Get-Content

[-ReadCount <Int64>]
[-TotalCount <Int64>]
[-Tail <Int32>]
[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Force]
[-Credential <PSCredential>]
[-Delimiter <String>]
[-Wait]
[-Raw]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <String>]
[<CommonParameters>]

Get-Content

[-ReadCount <Int64>]
[-TotalCount <Int64>]
[-Tail <Int32>]
-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Force]
[-Credential <PSCredential>]
[-Delimiter <String>]
[-Wait]
[-Raw]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <String>]
[<CommonParameters>]

使用File.Open方法

a.打开(字符串,文件模式)

使用各种文件模式从指定路径打开文件,稍后解释。

b.打开(字符串,文件模式,文件访问)

使用各种文件模式和文件访问方法从指定路径打开文件。

c.打开(字符串、文件模式、文件访问、文件共享)

从使用指定文件模式、文件访问权限和指定共享选项指定的路径打开文件。

使用 File StreamReader 类。

System.IO.StreamReader(“文件路径”)

PowerShell 中的打开文件命令如何工作?

当我们使用Get-Content方法时,我们可以从我们指定的路径中读取文件,而当我们读取文件时默认PowerShell命令会打开一个文件并读取文件的内容。

Get-Content C:\Temp\Servers.txt

在 PowerShell 中使用 System.IO 命名空间时,我们可以使用其类 File 及其方法 Open(),如语法所示。

a.打开(字符串,文件模式)

String:打开其内容的文件的路径。

文件模式:以下是文件系统使用的文件模式。

  • 追加:打开文件(如果存在)或创建新文件。这需要附加权限 FileMode.Append 并且只能与 FileAccess.Write 一起使用。
  • 创建:指定操作系统将创建一个新文件,如果存在,它将覆盖该文件,并且应与 FileMode.Create 权限一起使用。
  • CreateNew:指定操作系统将创建一个新文件,如果存在它将抛出异常。
  • Open:指定操作系统将打开文件(如果存在),否则将抛出异常。
  • OpenOrCreate:指定操作系统是否应打开文件。如果文件存在,它将打开一个新文件,否则将创建一个新文件。
  • 截断:指定操作系统应打开现有文件。当文件被截断时,其大小应为零字节。

b.打开(字符串,文件模式,文件访问)

字符串:要打开的文件的路径。

FileMode:如前面的语法中所述。

文件访问:以下是文件访问方法。

  • 读取:读取文件的访问权限。可以从文件中读取数据。
  • ReadWrite:对文件进行读写访问。可以从文件中写入和读取数据。
  • 写:对文件的写访问。可以将数据写入文件。

C.打开(字符串、文件模式、文件访问、文件共享)

String、FileMode 和 FileAccess 已在前面解释过。我们将在这里提供有关 FileShare 的描述。

以下是支持的字段。

  • 删除:允许删除文件。
  • 可继承:使文件可继承。 Win32 系统不支持此功能。
  • 无:拒绝文件共享。
  • 读取:允许打开文件进行读取,直到文件关闭。
  • ReadWrite 允许打开文件进行读写,直到文件关闭。
  • 写入:允许打开文件进行写入,直到文件关闭。

示例

示例 #1:使用 Get-Content 打开并读取文件。

Get-Content C:\Temp\Servers.txt

输出:

[玩转系统] PowerShell 打开文件 |打开文件命令的语法和参数

当您键入此命令时,它会打开文件进行读取,当文件读取成功时,它会关闭该文件。
当您将内容添加到文件时,首先打开文件,然后将数据写入到文件中。文件。例如,如果 Servers.txt 文件正在使用,则服务器名称“AusServer001”无法添加到该文件中。

"AUSServer001" | Add-Content -Path C:\Temp\Servers.txt -Force

示例#2:打开具有 System.IO 命名空间的文件。

要打开文件进行操作,我们可以使用以下命令。我们要打开的文件是 C:\temp 位置的 Servers.txt。

[System.IO.File]::Open("C:\Temp\Servers.txt", [System.IO.FileMode]::Open)

输出:

[玩转系统] PowerShell 打开文件 |打开文件命令的语法和参数

因此,当文件打开并且您尝试打开或编辑文件时,它将显示以下错误消息。

[玩转系统] PowerShell 打开文件 |打开文件命令的语法和参数

要在操作完成后关闭打开的文件,请使用 close() 方法。

$file = [System.IO.File]::Open("C:\Temp\Servers.txt", [System.IO.FileMode]::Open)
$file.Close()

如上面的语法所示,除了 Open 之外,您还可以使用 Create、CreateNew、Truncate 等各种方法。

例如,下面的命令将打开 Servers.txt(如果存在),否则将创建一个新文件。

[System.IO.File]::Open("C:\Temp\Servers.txt", [System.IO.FileMode]::OpenOrCreate)

使用 System.IO.File 命名空间打开和读取文件的另一种方法是使用 ReadAllLines() 命令。

[System.IO.File]::ReadAllLines( "C:\Temp\Servers.txt" )

输出:

[玩转系统] PowerShell 打开文件 |打开文件命令的语法和参数

示例#3:使用 File StreamRead 打开并读取文件。

使用 filestream 方法,我们首先需要创建 FileStream .Net 命名空间,如下所示。

$file = New-Object System.IO.StreamReader("C:\Temp\Servers.txt")

您可以使用 ReadToEnd() 方法读取文件。

$file.ReadToEnd()

输出:

[玩转系统] PowerShell 打开文件 |打开文件命令的语法和参数

我们还可以使用 ReadLine() 方法来读取文件,但该命令一次读取一行,因此我们需要使用循环来读取整个文件,如下所示。

$file = New-Object System.IO.StreamReader( "C:\Temp\Servers.txt" )
while( ($line = $file.readline()) -ne $null){
$line
}

输出:

[玩转系统] PowerShell 打开文件 |打开文件命令的语法和参数

结论

在编写脚本时,有时我们需要处理文件。上述 cmdlet 和提到的 PowerShell 中的 .Net 命令对于使用脚本打开文件以及读取和写入文件内容非常有用,当我们编写脚本来存储日志或事件时,这种方法很有用。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯