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

[玩转系统] PowerShell 输出文件 | PowerShell 输出文件综合指南

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

PowerShell 输出文件 | PowerShell 输出文件综合指南


[玩转系统] PowerShell 输出文件 | PowerShell 输出文件综合指南

PowerShell 输出文件简介

PowerShell Out-file 命令将输出存储或捕获到任何文件。我们可能经常希望查看所有错误和输出,因此将它们及其创建日期存储在文件中比简单地将它们打印到控制台上更好。因为输出的大小可能会很大,所以在这种情况下,我们可以将输出发送到文件中更好。

语法

1. 输出文件

[-FilePath] <String path of file for capturing output>
[[-Encoding] <Encoding types like ASCII,UTF8 etc>]
[-Append<add output to existing file at the end>]
[-Force<append output to file even read only access is there>]
[-NoClobber]
[-Width <int value of number of characters in one line>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf<What will happen on execution of command>]
[-Confirm<Yes or No confirmation before execution of command>]
[<CommonParameters>]

2. 输出文件

[[-Encoding] <Encoding types like ASCII,UTF8 etc>]
-LiteralPath <string exact target file path>
[-Append<add output to existing file at the end>]
[-Force<append output to file even read only access is there>]
[-NoClobber]
[-Width <int value of number of characters in one line>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf<What will happen on execution of command>]
[-Confirm<Yes or No confirmation before execution of command>]
[<CommonParameters>]

参数

以下是给出的一些参数。

1. -Append:如果我们想将任何输出添加到任何现有文件中,我们可以使用此命令。此命令会将您的输出添加到任何现有文件的末尾。

2. -Confirm:这个命令我们可以用来安全地执行命令。这里会显示一个提示框,要求您确认是否执行该命令。

3. -编码:此命令定义我们将在其中写入内容的文件的编码类型。如果我们不定义类型,它将采用 UTF8NoBOM 作为类型的默认值。

它接受的类型有几种;它们如下:

  • ASCII:在此类型中,它将使用 ASCII 7 位字符。这种类型的编码很常见。
  • BigEndianUnicode:它使用UTF-16格式进行编码。它使用 big-endian 和 UTF-16。
  • OEM:在这种情况下,它将使用 MS-DOS 默认编码和控制台程序
  • Unicode:它使用UTF-16格式进行编码。但它使用 Little-endian 和 UTF-16。
  • UTF-7:在此类型中,编码以 UTF-7 格式完成。
  • UTF8:在此类型中,编码以 UTF-8 格式完成。
  • UTF8BOM:在此类型中,编码以 UTF 8 BOM 格式完成。它使用带有 UTF 8 BOM 的字节顺序标记。
  • UTF8NoBOM:在此类型中,编码以 UTF 8 BOM 格式完成。它不使用带有 UTF 8 BOM 的字节顺序标记。
  • UTF32:在此类型中,编码以 UTF-32 格式完成。
  • 如果我们使用PowerShell 6.2或更高版本,我们还可以使用任何寄存器代码页的数字ID,例如-Encode 1251。这里1251是页码ID。我们可以使用寄存器代码页的字符串名称,例如-Encode“Windows - 1251”。

4. -FilePath:此命令定义我们要捕获或发送输出(错误或事件输出)的输出文件的路径。

5.-强制:假设有只读权限的文件;然后,在这种情况下 -Force 命令将允许您覆盖它。请记住,force 参数仅在文件只读访问的情况下才能写入;它不能覆盖该文件的安全限制。这意味着它不能损害安全性。

6. -InputObject:定义将写入文件的对象。我们可以采用任何包含对象、类型或任何命令或表达式的变量,这将返回任何对象(对象作为输出)。

7. -LiteralPath:在这里,我们定义输出捕获的文件路径。当我们知道确切的路径时,我们就写出字面路径;我们不能在其中传递通配符。例如,如果我们尝试使用“*.txt”这样的路径,则必须传递“/desktop/ranjan/test.txt”;这是行不通的。如果我们可以使用转义字符,但在这种情况下,我们需要用单引号将其引起来。使用单引号,我们通知 PowerShell 这是一个转义字符。

8. -NoNewline:如果我们不想在文件末尾添加换行符,那么我们可以使用此命令。

9. -WhatIf:显示执行命令时会发生什么;它会让您清楚该命令的用途,您将运行该命令而无需实际执行。

10. -宽度:定义每行输出可以有多少个字符。如果有任何多余的字符,则会被截断。如果不使用该属性,它将根据主机定义该值。一般来说,PowerShell可以容纳80个字符。

PowerShell 输出文件示例

下面给出了 PowerShell 输出文件的示例:

例子#1

在这个例子中,我们试图将所有进程捕获到一个文件中;我们可以看到我们将“.\captureprocess.txt”作为参数传递给 -FilePath 作为命令,这将捕获所有进程,并且在写入时 cat ./captureprocess.txt 文件包含所有进程名称。

Get-Process | Out-File -FilePath .\captureprocess.txt
cat ./Process.txt

输出:

[玩转系统] PowerShell 输出文件 | PowerShell 输出文件综合指南

示例#2

在此示例中,我们捕获包含文件 ./capturechilditem.txt 文件的当前文件夹的所有子项目(文件和文件夹)。

Get-ChildItem | Out-File -FilePath .\capturechilditem.txt
cat ./capturechilditem.txt

输出:

[玩转系统] PowerShell 输出文件 | PowerShell 输出文件综合指南

示例#3

在此示例中,我们将输出捕获到文件 capturechilditem.txt,但我们使用命令 -Confirm;该命令在执行之前会生成提示并要求您确认。

Get-Process | Out-File -FilePath .\capturechilditem.txt -Confirm
cat ./capturechilditem.txt

输出:

[玩转系统] PowerShell 输出文件 | PowerShell 输出文件综合指南

示例#4

在此命令中,我们使用 -WhatIf,您无需真正执行该命令即可看到输出。简单来说,就是在不影响任何东西的情况下运行命令的试用。我们通过这个命令来在实际执行之前了解该命令执行的目的。

Get-Process | Out-File -FilePath .\capturechilditem.txt -WhatIf

输出:

[玩转系统] PowerShell 输出文件 | PowerShell 输出文件综合指南

例子#5

我们使用 -Force 命令并将输出发送到文件 capturechilditem.txt;在这里,我们假设该文件只有读取权限。这里 Force 将用于将输出写入文件。强制无法绕过安全标准。

Get-Process | Out-File -FilePath .\capturechilditem.txt -Force
cat ./capturechilditem.txt

输出:

[玩转系统] PowerShell 输出文件 | PowerShell 输出文件综合指南

结论

从上面的教程中,我们了解到,借助Out-File命令,我们可以捕获(发送)文件输出;此输出可以是错误或任何事件或活动。

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

取消回复欢迎 发表评论:

关灯