次のコードがありますが、出力ファイルを「別名で保存」するためのダイナミックダイアログボックスをユーザーに表示させようとしています。既存のスクリプトのようにファイルを保存するダイアログボックス
$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スクリプティングの初心者です。私はちょうどそれがダイアログボックスとして名前を付けて保存に終わるようにしたい、うまくいくだろう。オリジナルの終わりを切らなければならないのですか?
"これらの行はどこに追加しましたか?"あなたは 'SaveFileDialog.CreatePrompt = True'と' SaveFileDialog.OverwritePrompt = True'を調査しましたか? – lit
申し訳ありませんが、[閉じる]ダイアログの直前に追加しました。 –
winformsアセンブリを追加しましたか?例えば'Add-Type -AssemblyName System.Windows.Forms'また、$ SaveFileDialog.ShowDialog()を呼び出してウィンドウを表示しましたか? – BenH