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

[玩转系统] PowerShell 启动进程 |语法、示例和代码实现

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

PowerShell 启动进程 |语法、示例和代码实现


[玩转系统] PowerShell 启动进程 |语法、示例和代码实现

PowerShell启动流程简介

很多时候,当我们使用进程和文件系统时,我们需要某种方法来处理从命令打开、写入和执行任何 .exe 文件的文件。 Start-Process 命令允许我们通过命令行打开进程。它能够捕获任何提到的文件中的错误或命令的输出,或者从任何提到的文件中读取输入。除了简单地打开任何进程之外,它还允许更多功能,例如,我们可以使用 Start-Process 来定义一些替代方法

  • 获取或加载用户(如果没有通过,它将获取当前用户配置文件详细信息)配置文件详细信息,
  • 允许在新窗口中以各种格式(正常、最小化、最大化等)启动新进程。以简单的方式,它定义了新进程的窗口状态
  • 凭证的替代选项。如果我们不提及凭据部分,那么它将读取当前用户凭据

语法和参数

PowerShell Start-Process 的语法如下:

语法#1

Start-Process
[-FilePath] <String>
[[-ArgumentList] <defines string parameters value>]
[-Credential <related to permission for the user to run the command, it can be PSCredential
also>]
[-WorkingDirectory <string value of working directories >]
[-LoadUserProfile<Here it will load user profile>]
[-NoNewWindow]
[-PassThru<Holds the details of process like process id etc>]
[-RedirectStandardError <string path  of file where error will be written>]
[-RedirectStandardInput <string path of file from where input will be read>]
[-RedirectStandardOutput <string path of file to where output will be written>]
[-WindowStyle <Allow us to open in various formats like normal ,maximized and minimized>]
[-Wait<wait for previous input processing>]
[-UseNewEnvironment]
[-WhatIf<display what happen on execution of command>]
[-Confirm<display a confirmation before execution of command>]
[<CommonParameters>]

语法#2

Start-Process
[-FilePath] <String>
[[-ArgumentList] <defines parameters value>]
[-WorkingDirectory <String>]
[-PassThru]
[-Verb <String>]
[-WindowStyle <ProcessWindowStyle>]
[-Wait<wait for previous input processing>]
[-WhatIf<display what happen on execution of command>]
[-Confirm<display a confirmation before execution of command>]
[<CommonParameters>]

参数

PowerShell 启动进程的参数。

  • ArgumentList:它定义命令启动时将使用的参数值。我们也可以在参数之间使用空格,这是在使用空格时我们唯一需要注意的事情,在这种情况下,我们应该将参数放在转义的双引号中。
  • 确认:它的名字清楚地表明了它的含义。在您运行命令之前,它会提示确认,以确保您的安全。
  • 凭据:用于安全目的,它定义有权运行命令的用户。如果我们不传递此命令的参数,它将获取当前用户的凭据。
  • 文件路径:定义将在进程中运行的程序的替代路径和文件名。这里我们需要传递目录和文件名(用于处理的文件),如果我们不提供路径或目录,它将使用具有相同文件名的当前工作目录。
  • LoadUserProfile:它将加载存储在 HKEY_USERS 注册表中的当前 Windows 用户的配置文件。
  • NoNewWindow:它允许我们在当前的Windows控制台中运行一个新的进程。请记住,如果我们不为此参数提供值,PowerShell 将始终打开一个新窗口。
  • RedirectStandardError:它定义了一个文件。借助此命令,我们可以将命令生成的错误发送到文件。这里我们需要提及用于捕获此错误的文件名。因此,如果我们不提及该文件,那么它将在控制台上发送错误。
  • RedirectStandardInput:假设您希望我们的进程从任何文件读取输入,那么我们可以使用此参数。在此参数中,我们必须提及命令将从中读取输入的文件路径。如果我们不提及文件名,那么该进程将从键盘输入值中读取输入。
  • RedirectStandardOutput:同样,如果我们想将进程生成的输出捕获到任何文件,那么我们可以定义文件名和路径,并且进程的输出将发布到提到的文件上。如果我们不提及文件名,输出将显示在控制台屏幕上。
  • UseNewEnvironment:此命令采用定义进程的任何新环境变量。如果我们不向该命令传递任何参数,它将采用当前计算机和用户的环境变量。
  • 等待:假设您在命令中传递了许多输入来处理,在这种情况下,我们使用此属性(等待),因为它将允许进程等待完成先前输入的处理。
  • WhatIf:执行命令后会显示结果。此命令仅在 PowerShell 版本 6 或更高版本之后支持。
  • WindowStyle:它将允许我们根据我们在计算机上的方便程度以各种格式打开新进程。它有多种格式,如正常、隐藏、最小化和最大化。我们需要这个命令,因为它为我们提供了多种打开进程并查看它们的方法。

实施 PowerShell 启动过程的示例

以下是powershell启动过程:

例子#1

在下面的示例中,我们位于 ranjan1 文件夹内,并且希望在任何默认编辑器中打开名为 test2.txt 的文件。它通过打开文件启动该过程。这是一个简单的示例,我们只是打开一个给定的文件,请参阅屏幕上的示例。

Start-Process test2.txt

输出:

它将打开指定的文本文件。

例子#2

这是基于示例,我们可以使用进程 ID 查看任何进程的创建和停止该进程。在这里,我们借助名为 -Passthru 的命令捕获进程详细信息,该命令通常以对象格式获取当前进程详细信息。在此示例中,变量 $procDetails 包含已启动进程的详细信息。我们可以通过编写 $procDetails.id 从此变量中获取进程 id,并使用该 id 我们可以对当前正在运行的进程执行任何操作。例如,下面我们将使用唯一的进程 ID 停止进程。 qwfile 将被关闭。

$procDetails = Start-Process test2.txt -Passthru
$procDetails.id

输出:

[玩转系统] PowerShell 启动进程 |语法、示例和代码实现

停止进程-id 9820

输出:

它将根据上面指定的 id 关闭文本文件。

例子#3

在这个例子中,我们使用-Confirm,我们可以看到在执行下面的命令时,它首先询问是(Y)或不是(N),所以如果我们输入Y,它将打开文件,如果我们输入N它不会打开该文件。请按照屏幕上的以下命令进行操作。

Start-Process -FilePath "test2.txt" --Confirm

[玩转系统] PowerShell 启动进程 |语法、示例和代码实现

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

取消回复欢迎 发表评论:

关灯