Я запускаю приведенный ниже сценарий, который выбирает отдельные файлы в 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
}
}