2012-07-20 164 views
1

我想用Start-Process命令调用另一个PowerShell会话。但我想有这个新的PowerShell的窗口尺寸要小,所以我想通过以下参数Powershell启动进程创建新变量

$arguments[0] += "New-Variable -Name host1 -Value (Get-Host)" 
$arguments[1] += "$aff = $host1.UI.RawUI" 
$arguments[2] += "$wff = $aff.WindowSize" 
$arguments[3] += "$wff.Width = 10" 
$arguments[4] += "$wff.Height = 10" 
$arguments[5] += "$aff.WindowSize = $wff" 

但它似乎没有工作。

任何帮助将高度赞赏 感谢

+0

我从来没有尝试这样做我自己,但我想这不是传递变量从出方的会话,你会想代码在会话中运行以进行更改。 – EBGreen 2012-07-20 12:52:55

+0

不,我不想传递变量我想创建变量,因为你可以看到我需要设置变量参数并改变窗口大小 – ajax 2012-07-20 13:01:54

+0

所以这个:“New-Variable -Name host1 -Value(Get-Host) “如果您将它作为参数传递,将不会创建名为host1的变量。它将作为字符串文字传递。在传递参数时不会执行任何执行。 – EBGreen 2012-07-20 13:04:33

回答

1

为什么不干脆让新的PowerShell隐藏?

Start-Process powershell -WindowStyle Hidden ... 

此外,PowerShell变量不会从一个PowerShell会话转移到另一个产生的会话。如果你需要的行为,那么存储信息的环境变量,例如:

$env:Width = '10' 
$env:Height = '10' 
+0

嗨基思,谢谢你的答案 - 没有-WindowStyle隐藏不起作用,当你打开一个PowerShell会话作为一个不同的用户从当前用户谁是登录:-(。但env变量的想法,我会立即尝试 - 谢谢你的帮助 – ajax 2012-07-23 06:48:23

+0

@ajax FWIW使用'WindowStyle'确实在这种情况下使用PowerShell V3,例如'启动过程powershell -WindowStyle隐藏-Credential $ cred -ArgumentList'-Command“&{get-date> c:\ temp \ foo.txt}”''用当前日期创建C:\ temp \ foo.txt,并且没有出现PowerShell控制台 – 2012-07-23 22:07:33

+0

hi ,谢谢你的答案,但遗憾的是我必须在PowerShell 2.0上工作 – ajax 2012-07-30 10:49:01