如何导入CSV替换在PowerShell中保存在blob中的字符和导出CSV



我是PowerShell的新手。我试图替换保存在BLOB存储中的CSV中的字符。从一个文件夹中获取文件,进行替换并保存在另一个文件夹中。

我有2组代码,一组用于替换字符,另一组用于创建斑点上下文。但是,我不确定如何将它们组合在一起以执行任务。这意味着我要使用什么而不是" import-csv"one_answers" set-content",我该如何告诉它为文件夹中的每个文件执行此操作?任何建议将不胜感激。

$dest = "C:testTest - Copy"
Function RemoveStripScrape ($CsvFileName, $csvLoc)
{
    $CsvFile = $csvLoc + $CsvFileName + ".csv"
    $ExportLoc = $csvLoc + $CsvFileName + ".csv"
    $Csv = Import-Csv $CsvFile 
    $regex = '(?<!"),|,(?!")'
    $regex1 = '(?<!r)n'
    $Csv | Select-Object * |ConvertTo-Csv -NoTypeInformation | %{$_ -replace $regex,' '} |%{$_ -replace $regex1, ' '} | Set-Content $ExportLoc 
    }
$ens = Get-ChildItem $dest -Recurse -include Let*.csv
foreach($e in $ens)
{
    $e.Basename
    RemoveStripScrape -CsvFileName $e.BaseName -csvLoc $dest
} 

获取上下文:

$azurepw = ConvertTo-SecureString "xyz" -AsplainText -Force
$cred = New-Object -typename pscredential -argumentlist "xyz@xyz.com",$azurepw
Login-AzureRmAccount -credential $cred | Out-Null
$resourcegroup = "xyz"
$storageaccountname = "xyz"
$storageaccountkey = `
    (Get-AzureRmStorageAccountKey `
    -ResourceGroupName $resourcegroup `
    -Name $storageaccountname).Value[0]
$sourceContext = New-AzureStorageContext $storageaccountname $storageaccountkey
$container = "xyz"
$FileDate = $($(Get-Date).ToString('yyyyMMdd'))
$SourceFileName = "*activity*.csv"
$SinkFileName = "processed_$($FileDate).csv"
$BlobSourceFileNamePath = "Data/Revenue/Archive/CorethreeNew/$($SourceFileName)"
$BlobSinkFileNamePath = "Data/Revenue/Archive/CorethreeNew/Processed/$($SinkFileName)"
#$BlobArchiveSinkFileNamePath = "Data/Revenue/Archive/CorethreeNew/Archive/$($SinkFileName)"

以这种方式解决: #从本地目录中获取文件以执行替换 美元

#Importing csv and replacing regex for each file in the local store and saving it in 
local Processed folder
foreach($e in $ent)
{
     $FileName = $e.Name
     $CsvFile = "$($afLocalPath2)$($FileName)"
     $Csv = Import-Csv $CsvFile 
     $Csv | Select-Object * |ConvertTo-Csv -NoTypeInformation | %{$_ -replace $regex,' '} |%{$_ -replace $regex1, ' '} |%{$_ -replace $regex2, ' '} | %{$_ -replace $regex3, ''}| Set-Content "$($ExportLoc)$($FileName)" -Force

   #Uploading the updated files from local Processed directory to blob
   Set-AzureStorageBlobContent -Context $sourceContext -Container $container -File "$($ExportLoc)$($FileName)" -Blob "$($BlobSinkFileNamePath)$($FileName)" -Force

}

相关内容

最新更新