【发布时间】:2022-01-03 01:41:16
【问题描述】:
这是程序。我正在使用戴尔命令 |配置。命令行命令如下:
"C:\Program Files (x86)\Dell\Command Configure\X86_64>cctk.exe" --wakeonlan
在 Powershell 中,您可以导航到该文件夹并运行:
./cctk.exe --wakeonlan
我可以将上述命令通过管道传递到一个变量中并获取我需要的信息。这需要我的 shell 相应地 cd 到文件夹中并相应地运行。
$test = ./cctk.exe --wakeonlan
这会给你一个输出。但是,当您使用 start-process 时,您不会得到任何输出,因为这是一个命令行命令。出现一个 cmd 屏幕并运行该命令。因此,我添加了 -nonewwindow 和 -wait 标志。输出现在出现在屏幕上,但我似乎无法捕捉到它。
$test = start-process "C:\Program Files (x86)\Dell\Command Configure\X86_64\cctk.exe" -ArgumentList @("--wakeonlan") -NoNewWindow -Wait
此时测试为空。我也尝试使用 Out-File 来捕获信息。没有成功。该命令输出到屏幕,但没有其他地方。
我还尝试了使用 /C 标志传递信息的 cmd 方法。
$test = Start-Process cmd -ArgumentList '/C start "C:\Program Files (x86)\Dell\Command Configure\X86_64\cctk.exe" "--wakeonlan"' -NoNewWindow -Wait
但是,我尝试了该命令的许多变体,但都没有成功。有人说 C:\Program 无法识别。有些只是打开命令提示符。上面说 --wakeonlan 是一个未知命令。
任何指针都会有很大帮助。
【问题讨论】:
标签: powershell command-line start-process powershell-5.1