다음 코드가 있지만 동적 대화 상자를 사용하여 출력 파일을 "다른 이름으로 저장"하도록 묻는 중입니다. 기존 스크립트에서 파일을 저장하는 대화 상자
$pathtsv = "c:\test.txt"
$pathxlsx = "c:\NBP ESP-152 REV F TEMPLATE.xlsx"
$Excel = New-Object -ComObject "Excel.Application"
$Excel.Visible=$true
$Workbook = $Excel.Workbooks.Open($pathxlsx) # Open Template
$TempWorkbook = $Excel.Workbooks.Opentext($pathtsv) # Open text file in excel
$temp = $excel.Workbooks.Item(2) #select workbook with text
$temp = $temp.Worksheets.Item(1) #select text worksheet
$CopyRange = $temp.Range("A1:G8") #set range
$CopyRange.Copy() #copy data
$workbooksheet = $Workbook.Worksheets.Item(1)#sets doc to copy to
$Workbooksheet.activate()
$PasteRange = $workbooksheet.Range("A3:J10") #sets range
$workbooksheet.Paste($PasteRange)#paste data
#save and close the workbook
$Workbook.Close($true)
$Excel.Quit()
while([System.Runtime.Interopservices.Marshal]::ReleaseComObject($Excel)){}
[gc]::collect()
[gc]::WaitForPendingFinalizers()
그래서 난에 추가하는 시도 :
$SaveFileDialog = New-Object windows.forms.savefiledialog
$SaveFileDialog.initialDirectory = [System.IO.Directory]::GetCurrentDirectory()
했지만, 제대로 동작하지 않습니다. 왜 필자는 Powershell 스크립팅에 아직 익숙하지 않기 때문에 그 이유를 모르겠습니다. 난 그냥 대화 상자로 저장을 끝내고 싶어, 괜찮을 것이다. 원본의 끝을 잘라야합니까? (IE는.이 잘라됩니까?
$Workbook.Close($true)
$Excel.Quit()
while([System.Runtime.Interopservices.Marshal]::ReleaseComObject($Excel)){}
[gc]::collect()
[gc]::WaitForPendingFinalizers()
을) 당신은이 일을 할 몇 가지 작업을 수행해야
"이 행을 어디에 추가 했습니까?" 'SaveFileDialog.CreatePrompt = True'와'SaveFileDialog.OverwritePrompt = True'를 조사 했습니까? – lit
죄송합니다. 닫기 대화 상자 바로 앞에 추가했습니다. –
winforms 어셈블리를 추가 했습니까? 예 : 'Add-Type -AssemblyName System.Windows.Forms' 또한'$ SaveFileDialog.ShowDialog()'를 호출하여 윈도우를 표시 했습니까? – BenH