使用 windows powershell 启动进程
start-process
cmdlet 是一个 powershell 命令,用于以受控和托管的方式启动单个或多个进程。默认情况下,启动的进程会继承所有当前的 powershell 环境。
start-process
cmdlet 可以执行或运行可执行文件、批处理脚本、ms-dos 和 powershell 命令,甚至 java 应用程序。此外,windows powershell 可以使用 start-process
cmdlet 来指定用户配置文件、windows 状态和凭据等。
本文将讨论 start-process
cmdlet 如何工作,并在编写脚本时使用它。
powershell 中的 start-process
cmdlet
start-process
cmdlet 执行一个或多个进程、可执行文件或脚本文件,或已安装软件可以在计算机上打开的任何文件。
使用 windows powershell 时,start-process
cmdlet 的基本语法如下所示。
start-process
start-process
cmdlet 参数
start-process
cmdlet 可以使用参数为 cmdlet 添加更多功能、功能和灵活性。
启动新进程或可执行文件
如前所述,start-process
命令的最基本用法是提供可执行文件、批处理或脚本文件,或类似以下语法的命令。例如,使用以下语法调用记事本应用程序时将打开。
start-process notepad.exe
或者,cmdlet 可以使用 -filepath
参数来指定我们要执行的文件位置。
start-process -filepath notepad.exe
我们也可以在下面指定可执行文件或批处理文件的完整路径。在下面的示例中,我们将在下面的示例中执行位于 d:\scripts
目录下的批处理文件。
start-process -filepath "d:\scripts\backup.bat"
将标准输入设置为文件
我们可以使用标准输入指定进程输入,其中提供的标准输入内容被重定向到给定进程。在这种情况下,-redirectstandardinput
参数可以将文件设置为新创建进程的输入。
start-process -filepath "d:\scripts\backup.bat" -redirectstandardinput test.txt
在上面的示例语法中,backup.bat
可执行输入来自文件 test.txt
。
将标准输出设置为文件
当一个进程被执行时,它可能会创建一些我们可以打印到终端、屏幕或文件的输出。我们可以使用 -redirectstandardoutput
参数来指定输出到文件中。
start-process -filepath "d:\scripts\backup.bat" -redirectstandardoutput test.txt
backup.bat
可执行输出来自上述示例语法中的文件 test.txt
。
将标准错误输出设置为文件
在运行进程时,可能会出现错误,并且这些错误的相关信息默认会打印到控制台或终端中。使用 -redirectstandarderror
参数可以将输出重定向到如下文件。
start-process -filepath "d:\scripts\backup.bat" -redirectstandarderror errors.txt
在上面的示例语法中,如果我们在运行 backup.bat
可执行文件时遇到任何错误,错误将打印在文件 errors.txt
中。
设置工作目录
默认情况下,新进程在当前工作目录中执行,通常是系统驱动器 c:
。但是,我们可以使用 -workingdirectory
参数在下面设置一个新的工作目录。
start-process notepad.exe -workingdirectory "d:"
对于这个例子,
创造新环境
连同我们之前在文章中讨论的参数,我们可以将它们合并到一个脚本块中。
-usenewenvironment
参数指定进程使用其环境变量运行。
$processoptions = @{
filepath = "sort.exe"
redirectstandardinput = "testsort.txt"
redirectstandardoutput = "sorted.txt"
redirectstandarderror = "sorterror.txt"
usenewenvironment = $true
}
start-process @processoptions
最大化窗口中的启动进程
start-process
命令可以启动命令行进程或可能有一些 gui 的 gui 进程。
该脚本可以使用 -windowstyle
参数设置 gui 窗口大小。该参数可以设置为最大化以最大化新的进程窗口。
start-process notepad.exe -windowstyle maximized
使用不同用户的 start-process
默认情况下,启动的进程以当前用户权限执行。但是,start-process
cmdlet 可以使用 -credential
参数通过提供我们要执行进程的新用户来更改进程的权限。
如果你输入用户名,系统将提示你输入密码。
start-process notepad.exe -credential
以管理员身份启动进程
我们可以使用 - verb
参数以管理员身份运行应用程序。
start-process notepad.exe -verb runas
带有指定参数的 start-process
命令、进程或批处理文件可以接受单个或多个参数来获取输入数据。
该输入数据称为参数,start-process
命令可以通过 -argumentlist
向已启动的进程提供参数。提供的参数列表作为参数传递给进程。
start-process -filepath "$env:comspec" -argumentlist "/c","dir","`"%systemdrive%\program files`""
powershell start-process
的优势
- 脚本文件只能在本地打开。这是一种使用 windows powershell 脚本防止远程攻击的安全技术。
- cmdlet 在 microsoft 支持的脚本环境中运行。只要支持 windows powershell,microsoft 就会投入资源来保持语言最新,并进行更新修订。
- 一个庞大的开发者社区很容易与
start-process
cmdlet 共享知识。 - cmdlet 和系统数据存储使用标准、一致的语法和命名约定来轻松共享数据。
- 使用此 cmdlet,操作系统的导航得到简化,让用户熟悉文件系统、注册表和其他数据。
- 对象可以很容易地直接操作或发送到其他工具或数据库。
- 软件供应商和开发人员可以构建自定义工具。
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
发布时间:2024/03/04 浏览次数:358 分类:编程语言
-
本文将解释我们如何使用 powershell 的参数函数处理命令行参数,参数如何工作,我们如何使用 powershell 参数将值传递给参数,以及定义参数的基本方法是什么。
发布时间:2024/03/04 浏览次数:273 分类:编程语言
-
本教程将教你在 powershell 中向命令输出添加新行的不同方法。
发布时间:2024/03/04 浏览次数:332 分类:编程语言
-
本文将展示如何编码和解码 base64 字符串。windows powershell 当前版本没有本机命令,因此我们将向你展示如何执行此操作的替代方法。
发布时间:2024/03/04 浏览次数:324 分类:编程语言
-
本文将讨论如何使用不同的 powershell 替换方法替换或删除字符、文本和单词。
发布时间:2024/03/04 浏览次数:259 分类:编程语言
-
本文将向你展示如何在 windows powershell 中编写或打印输出。本文还将区分多个 write cmdlet 并解释它们的意义。
发布时间:2024/03/04 浏览次数:350 分类:编程语言
-
本文将展示在 windows powershell 中设置路径环境变量的正确方法。本文还展示了如何在持久性和非持久性方法中设置变量。
发布时间:2024/03/04 浏览次数:869 分类:编程语言
-
本文将讨论什么是环境变量以及如何使用多个 windows powershell 命令打印它们。
发布时间:2024/03/04 浏览次数:363 分类:编程语言
-
本文将展示在 windows powershell 中注释代码的多种方法。本文还介绍了注释代码时的一些最佳实践。
发布时间:2024/03/04 浏览次数:304 分类:编程语言
-
本文将深入了解如何使用 active directory 过滤器和 ldap 过滤器。