2012-08-08 4 views
0

일부 시나리오에서만 작동하는 기능이 있습니다.Powershell 스크립트는 특정 시나리오에서만 실행됩니다.

  • 그것은 Powershell ISE에서 작동하지만 .Ps1 파일에서 같은 것을 저장하고 실행하면 작동하지 않습니다.
  • 큰 스크립트의 일부로이 함수가 있습니다. Windows 7에서 실행할 때 창을 열고 열지 만 Windows Server 2008 R2에서는 실행되지 않습니다.

왜? 이 여기의 경우와

Function Get-SaveFileTxt($initialDirectory) 
{ 
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | 
Out-Null 

$SaveFileDialog = New-Object System.Windows.Forms.SaveFileDialog 
$SaveFileDialog.initialDirectory = $initialDirectory 
$SaveFileDialog.AddExtension = $true 
$SaveFileDialog.DefaultExt = "txt" 
$SaveFileDialog.filter = "Text Files (*.txt)| *.txt" 
$SaveFileDialog.ShowDialog() | Out-Null 
$SaveFileDialog.filename 
} 

Get-SaveFileTxt 
+0

_ "작동하지 않음"_? 어떤 오류가 발생했는지 구체적으로 설명하십시오. –

+0

@tbergstedt 사용해보기. 스크립트는 오류없이 계속 실행되지만 분명히 아무 일도 일어나지 않습니다. –

답변

1

확실하지 경우 그러나 나는 열린 대화의 초점을 다른 오픈 창 뒤에 표시되지 않는 버그를 기억

기능을 가진 스크립트와의 전화입니다. 확인 할수 있어요?

UPDATE :

세트를 $ true로 showHelp와 속성입니다. ISE의 아파트 상태가 STA가 디폴트로하고 파워 쉘 모드는 당신이 그것을 확인하실 수 있습니다, MTA 때문에

$SaveFileDialog.ShowHelp = $true 

그것은 ISE에서 작동 :

[System.Threading.Thread]::CurrentThread.ApartmentState 

당신의 코드가 작동 할 경우 당신 STA 오픈 PowerShell을 모드 :

powershell.exe -STA 
+0

고맙습니다. 셰이. 뒤에있는 reamain을 열어 보이지 않습니다. 아무 일도 일어나지 않는 것처럼 보입니다. –

+0

흥미 롭습니다. ShowHelp는 무엇을 정확하게 수행합니까? 인터페이스가 완전히 변경되었습니다. Showhelp를 false로 설정하면 양식이 다음과 같이 보입니다. https://dl.dropbox.com/u/300838/false.png이 모양이 true 인 경우 https://dl.dropbox.com/u /300838/true.png –

+0

도움말 버튼이 표시됩니까? :) –

관련 문제