如何静默运行 PowerShell 命令?

如何静默运行 PowerShell 命令?

我想执行电源外壳静默命令,不会出现蓝屏。

我怎样才能做到这一点电源外壳命令?

我试过了……

PowerShell.exe -windowstyle hidden 

但它不起作用——命令执行了,但蓝屏仍然出现。

答案1

在提示符下静默运行 PowerShell 命令

就像声明的那样。 。 。

您可以使用 PowerShell.exe 从另一个工具(例如 Cmd.exe)的命令行启动 PowerShell 会话,或者在 PowerShell 命令行中使用它来启动新会话。使用参数自定义会话。


-WindowStyle

设置会话的窗口样式。有效值为正常、最小化、最大化和隐藏。

-命令

执行指定的命令(和任何参数),就像在 PowerShell 命令提示符下键入一样,然后退出,除非指定了 NoExit 参数。实际上,之后的任何文本 -Command都会作为单个命令行发送到 PowerShell


句法

powershell -windowstyle hidden -command <PowerShell Command String>

可验证的例子

1. 命令提示符(cmd)

powershell -windowstyle hidden -command get-childitem -path c:\ ^| out-file "C:\Folder\Log\log.txt"

在此处输入图片描述

笔记: 使用 cmd 时,[ |] 管道符号需要用 [ ^] 插入符号进行转义,因此为“ ^|”。


2. PowerShell 提示符

powershell -windowstyle hidden -command get-childitem -path c:\ | out-file "C:\Folder\Log\log.txt"

在此处输入图片描述

笔记: 运行后,打开日志.txt验证其内容,因为out-file将其引导至输出。


更多资源

答案2

不确定我在哪里找到这些行,但是有一些很好的功能可以显示和隐藏控制台。

显示/隐藏 Powershell 窗口

Function Show-Console {
$consolePtr = [Console.Window]::GetConsoleWindow()
[Console.Window]::ShowWindow($consolePtr, 5)
}

Function Hide-Console {
$consolePtr = [Console.Window]::GetConsoleWindow()
[Console.Window]::ShowWindow($consolePtr, 0)
}

当我想在后台隐藏 ps 时,我将它用于我的 gui 应用程序:

地图:显示/隐藏 Powershell Windows 复选框

$cb_PSCheckbox.Add_Checked({Show-Console})
$cb_PSCheckbox.Add_UnChecked({Hide-Console})

答案3

另一种完全隐藏(甚至没有闪现)运行 PowerShell 脚本的方法是使用这个小运行隐藏可执行文件。

相关内容