Как снять блокировку файла при экспорте данных в файл CSV? - PullRequest
0 голосов
/ 22 октября 2018

Я запускаю приведенный ниже сценарий, который выбирает отдельные файлы в BLOB-объекте, создает его URL-адрес SAS и экспортирует данные в файл CSV, теперь проблема заключается в его первоначальном запуске, однако сценарий запускается и создает файл CSV, когдая перезапускаю сценарий, чтобы добавить файл с новым файлом SAS, который он выдает, и с ошибкой «Процесс не может получить доступ к файлу, потому что он используется другим процессом»

Может кто-нибудь сказать мне, что мне нужно сделатьизбежать блокировки файла?

 $key=(Get-AzureRmStorageAccountKey -ResourceGroupName Test -Name testdiag).Value[0]
 $storageContext=(Get-AzureRmStorageAccount -ResourceGroupName Test -Name testdiag).Context
 Set-AzureRmCurrentStorageAccount -Context $storageContext
 $blobCon=Get-AzureStorageBlob -Container 'customscript' -Context $storage.Context
 $DesktopPath = [Environment]::GetFolderPath("Desktop")

 if(test-path "$DesktopPath\testfile7.csv"){
 $file="$DesktopPath\testfile7.csv"
 $sheetName = "testfile7"
 $objExcel = New-Object -ComObject Excel.Application
 $workbook = $objExcel.Workbooks.Open($file)
 $sheet = $workbook.Worksheets.Item($sheetName)
 $objExcel.Visible=$false
 $rowMax = ($sheet.UsedRange.Rows).count
 $row1,$col1 = 1,1
 $filename= for ($i=1; $i -le $rowMax-1; $i++) {
 $sheet.Cells.Item($row1+$i,$col1).text
 }
 foreach ($blob in $blobCon){
   if ($filename -contains $blob.Name){
      echo "File Already Exists"
   }
 else{ 
 $bloburi=$blob.ICloudBlob.Container.Uri.AbsoluteUri + "/" +$blob.Name
 $fileSAS=$bloburi+$sas
 $fileSAS | select @{n='File Name';e={$blob.Name}},
 @{n='File SAS';e={$fileSAS}} | 
 Export-Csv "$DesktopPath\testfile7.csv" -Append -NoTypeInformation -Force
 }}}
 else
  {
  foreach ($blob in $blobCon){
  $bloburi=$blob.ICloudBlob.Container.Uri.AbsoluteUri + "/" +$blob.Name\
  $fileSAS=$bloburi+$sas
  $fileSAS |
  select @{n='File Name';e={$blob.Name}},@{n='File SAS';e={$fileSAS}} |      
  Export-Csv "$DesktopPath\testfile7.csv" -Append -NoTypeInformation -Force
  } 
 }
...