我正在创建一个使用Start-Process cmdlet的应用程序。
使用-WindowStyle隐藏的Start-Process(或Minimized等)对此特定应用程序链接,Windows 7上的Docker QuickStart终端没有影响。我使用的是Docker Toolbox而不是Docker for Windows。
Start-Process -WindowStyle Hidden -FilePath "$env:appdata\Microsoft\Windows\Start Menu\Programs\Docker\Docker Quickstart Terminal.lnk"
它启动应用程序没有问题,但它不会隐藏应用程序,这与Windows 10不同。我很困惑,因为正常的快捷方式链接(Chrome和Internet Explorer)和其他应用程序在两个平台上正确启动和隐藏/最小化。唯一的问题是这个特殊的快捷方式链接。
我不确定这是与PowerShell版本相关的问题,Windows 7上的2.0和Windows 10上的5.0。
有没有人遇到过类似的问题?任何帮助都将不胜感激。
答案 0 :(得分:2)
Docker快捷方式启动bash.exe,启动另一个启动另一个bash.exe的bash.exe Bash内置在Windows 10中,但在以前版本的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'
注意: