當我執行PowerShell腳本時,我經歷了一個非常奇怪的行爲。我想運行tf
命令的子命令。該可執行文件通常用作控制檯應用程序,但子命令tf resolve
命令顯示一個對話框,我想查看它。當輸出捕獲到變量中時,PowerShell禁止TF命令UI
請問一些PowerShell Guru請解釋一下,發生了什麼事用例1b & 2b?或者你有什麼暗示這裏有什麼問題?
備註:如果找不到,請根據您的安裝修改VS版本。我正在使用VS 2015,PowerShell 4,Windows 8.1。
使用案例1A:顯示 對話框(一切是好的)
$tfCommand = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 14.0\Common7\IDE\tf.exe"
& $tfCommand resolve
使用案例1B: 對話框不顯示(WTF?!)
變化: STDOUT保存在變量中
$tfCommand = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 14.0\Common7\IDE\tf.exe"
$someVariable = & $tfCommand resolve
使用情況2A: 顯示對話框(一切是好的)
$tfCommand = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 14.0\Common7\IDE\tf.exe"
function callTfResolve($tfCommand) {
& $tfCommand resolve
}
CallTfResolve $tfCommand
使用情況2B: 對話框不顯示(WTF?!)
變化:返回值CallTfResolve
保存在變量中
$tfCommand = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 14.0\Common7\IDE\tf.exe"
function callTfResolve($tfCommand) {
& $tfCommand resolve
}
$someVariable = CallTfResolve $tfCommand