2014-09-23 1 views
1

내 스크립트가 시작되면 파일을 한 디렉토리에서 다른 디렉토리로 이동합니다. 파일을 완전히 다운로드 한 후 응용 프로그램을 시작합니다.
이 모든 기능이 작동하지만 파일을 이동할 때 나타나는 팝업 창이 나타납니다 (대용량 파일).
일단 코드가 Move-Item Cmdlet에 도달하면 디버깅 할 때 명령이 완료 될 때까지 기다렸다가 계속 이동합니다. Move-Item Cmdlet이 실행 중일 때 정보 창을 팝업으로 표시하고 싶습니다. 팝업 및 이동 항목을 수행하는 방법을 알고 있습니다. 원하는 방식으로 작동하도록하는 방법을 알지 못합니다. 어떤 아이디어?

팝업 코드가파일 이동 중 Powershell 팝업

#pop up window letting mechanic know we are waiting for the files to be downloaded before opeing the SMT application 
      $wshell = New-Object -ComObject Wscript.Shell 
      $wshell.Popup("The EAFR file is still being moved to the correct directory, please wait.",0,"SMT Status",0) 

#Move-Item 
    $MLMoveDir = "C:\move\data\AutoUpload\" 
    Move-Item -LiteralPath ($filePath) $MLMoveDir 
+0

왜 팝업을 원하나요? 왜 콘솔에 글을 쓰고, 끝나면 쓰는 것이 좋을까요? –

+0

사용자가 PowerShell이 ​​아닌 응용 프로그램을 시작하기위한 아이콘을 클릭하기 때문입니다. –

+0

* 원하는 방식으로 작동시키는 방법 *을 알지 못합니다. 어떻게하면 좋을까요? –

답변

1

하나의 옵션은 사용자가 무시해야하는 팝업 대신 잠깐 기다리십시오. 대화 상자를 표시하는 것입니다. 다음과 같음 :

Add-Type -AssemblyName System.Windows.Forms 
$Form = New-Object system.Windows.Forms.Form 
$Label = New-Object System.Windows.Forms.Label 
$Form.Controls.Add($Label) 
$Label.Text = "Copying file, please wait." 
$Label.AutoSize = $True 
$Form.Visible = $True 
$Form.Update() 

#Move-Item 
$MLMoveDir = "C:\move\data\AutoUpload\" 
Move-Item -LiteralPath ($filePath) $MLMoveDir 

#Hide popup 
$Form.Close() 
+0

이것이 효과적입니다, 마이크 감사합니다! –

0

그래서 당신은 무엇을 할 수 있는지 잠시을 다음 작업으로 이동 품목을 시작하고 ((. "작업 이름") - 직업을 -ne 완료 상태)이다 {팝업을 }. 1 초

#Move-Item 
    $MLMoveDir = "C:\move\data\AutoUpload\" 
    $MoveJob = Start-Job -scriptblock {Move-Item -LiteralPath ($filePath) $MLMoveDir} 
#Show Popup 
    While($movejob.state -ne "Completed"){ 
     $wshell = New-Object -ComObject Wscript.Shell 
     $wshell.Popup("The EAFR file is still being moved to the correct directory, please wait.",1,"SMT Status",0) 
    } 

그 방법 팝업 쇼를하고, 이동이 여전히 일어나고있는 경우는 다시 보여줍니다 :이처럼 보일 것입니다. 사라지거나 재발견되는 것처럼 보일 수도 있다는 것을 나는 모른다.

+0

이 @TheMadTechnician이 마음에 듭니다. PowerShell 3.0으로 업그레이드 할 수 있는지 알아야합니다. –

관련 문제