我对powershell很陌生。我正在尝试替换保存在 blob 存储中的 csv 中的字符。从一个文件夹中取出文件,进行替换并保存在另一个文件夹中。
我有两套代码,一套用于替换字符,一套用于创建 blob 上下文。但是,我不确定如何将它们组合在一起来执行任务。这意味着我使用什么而不是 'import-csv' 和 'set-content' 以及如何告诉它为文件夹中的每个文件执行此操作?任何意见,将不胜感激。
$dest = "C:\test\Test - 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 "[email protected]",$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)"
这样解决:#Getting files from local directory to perform replace $ent = Get-ChildItem -Path $afLocalPath2 -Recurse -include aircoach .csv
#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
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句