PowerShell WindowStyle - 隐藏在 Windows 10 但不是 Windows 7
PowerShell WindowStyle -Hidden working on Windows 10 but not Windows 7
我正在制作一个使用 Start-Process cmdlet 的应用程序。
Start-Process with -WindowStyle Hidden(或 Minimized 等)对此特定应用程序没有影响 link,Docker Windows 上的 QuickStart Terminal 7. 我我正在使用 Docker 工具箱而不是 Docker 用于 Windows。
Start-Process -WindowStyle Hidden -FilePath "$env:appdata\Microsoft\Windows\Start Menu\Programs\Docker\Docker Quickstart Terminal.lnk"
它可以毫无问题地启动应用程序,但它不会像 Windows 10 那样隐藏应用程序。我很困惑,因为正常的快捷方式 links(Chrome 和 Internet Explorer ) 和其他应用程序在两个平台上正常启动和 hides/minimizes。唯一的问题是这个特定的快捷方式 link.
我不确定这是否是与 PowerShell 版本相关的问题,Windows 7 上的 2.0 和 Windows 10 上的 5.0。
有没有人遇到过类似的问题?如有任何帮助,我们将不胜感激。
Docker 快捷方式启动 bash.exe,启动另一个 bash.exe,启动另一个 bash.exe。
Bash 在 Windows 10 中是 built-in,但在 Windows 的以前版本中不是 Windows,所以我想这就是原因。
让我们解析快捷方式文件并手动启动它的目标:
function runProgramShortcutHidden($relativePath) {
$programsMenu = [Environment]::GetFolderPath([Environment+SpecialFolder]::Programs)
$fullPath = Join-Path $programsMenu $relativePath
$linkDir = (New-Object -com Shell.Application).NameSpace((Split-Path $fullPath))
$link = $linkDir.ParseName((Split-Path -leaf $fullPath)).GetLink
$psi = New-Object Diagnostics.ProcessStartInfo
$psi.FileName = $link.Path
$psi.Arguments = $link.Arguments
$psi.WorkingDirectory = $link.WorkingDirectory
$psi.WindowStyle = [Diagnostics.ProcessWindowStyle]::Hidden
[Diagnostics.Process]::Start($psi) >$null
}
用法:
runProgramShortcutHidden 'Docker\Docker Quickstart Terminal.lnk'
备注:
- 由于代码使用了ShellLink接口,因此支持快捷方式目标路径中的Unicode;
- System.Diagnostics.Process class 用于按原样传递参数字符串。
我正在制作一个使用 Start-Process cmdlet 的应用程序。
Start-Process with -WindowStyle Hidden(或 Minimized 等)对此特定应用程序没有影响 link,Docker Windows 上的 QuickStart Terminal 7. 我我正在使用 Docker 工具箱而不是 Docker 用于 Windows。
Start-Process -WindowStyle Hidden -FilePath "$env:appdata\Microsoft\Windows\Start Menu\Programs\Docker\Docker Quickstart Terminal.lnk"
它可以毫无问题地启动应用程序,但它不会像 Windows 10 那样隐藏应用程序。我很困惑,因为正常的快捷方式 links(Chrome 和 Internet Explorer ) 和其他应用程序在两个平台上正常启动和 hides/minimizes。唯一的问题是这个特定的快捷方式 link.
我不确定这是否是与 PowerShell 版本相关的问题,Windows 7 上的 2.0 和 Windows 10 上的 5.0。
有没有人遇到过类似的问题?如有任何帮助,我们将不胜感激。
Docker 快捷方式启动 bash.exe,启动另一个 bash.exe,启动另一个 bash.exe。
Bash 在 Windows 10 中是 built-in,但在 Windows 的以前版本中不是 Windows,所以我想这就是原因。
让我们解析快捷方式文件并手动启动它的目标:
function runProgramShortcutHidden($relativePath) {
$programsMenu = [Environment]::GetFolderPath([Environment+SpecialFolder]::Programs)
$fullPath = Join-Path $programsMenu $relativePath
$linkDir = (New-Object -com Shell.Application).NameSpace((Split-Path $fullPath))
$link = $linkDir.ParseName((Split-Path -leaf $fullPath)).GetLink
$psi = New-Object Diagnostics.ProcessStartInfo
$psi.FileName = $link.Path
$psi.Arguments = $link.Arguments
$psi.WorkingDirectory = $link.WorkingDirectory
$psi.WindowStyle = [Diagnostics.ProcessWindowStyle]::Hidden
[Diagnostics.Process]::Start($psi) >$null
}
用法:
runProgramShortcutHidden 'Docker\Docker Quickstart Terminal.lnk'
备注:
- 由于代码使用了ShellLink接口,因此支持快捷方式目标路径中的Unicode;
- System.Diagnostics.Process class 用于按原样传递参数字符串。