![](/img/trans.png)
[英]Delete empty folders in azure file share storage using powershell script
[英]Truncate azure storage file directory/delete azure storage file using wildcard suffix
我正在编写Powershell脚本,以启用每月一次清理azure文件共享中的文件。
理想情况下,我希望一个脚本仅截断目录/文件位置。 但是会满足于分别删除每个文件。
每月大约加载20个文件,每个文件都有一个唯一的名称,并在文件名中包含后缀日期时间戳。 例如filename_20190121123515
我设法使用全名删除了文件,但需要为日期时间后缀使用通配符值。
我想要达到的正确语法是什么? 还是我将如何截断整个文件夹?
$context = New-AzStorageContext -StorageAccountName "AccountName" -SasToken
"?sv=2015-12-11&si=bss-15D97F9B09D&sr=s&sig=xxxxxxxxxxxxxxxxxxxxx"
Remove-AzStorageFile -ShareName "bss" -Path
"root/Temp_Clean_up_test_Folder/FileName_%%%%%%%%%%%%%%.csv" -Context
$context
$context = New-AzStorageContext -StorageAccountName "AccountName" -SasToken
"?sv=2015-12-11&si=bss-15D97F9B09D&sr=s&sig=xxxxxxxxxxxxxxxxxxxxx"
Remove-AzStorageFile -ShareName "bss" -Path
"root/Temp_Clean_up_test_Folder/FileName_*" -Context $context
cmdlet Remove-AzStorageFile不支持通配符,您需要使用循环方法来逐个删除文件。
样例代码如下:
$context = New-AzStorageContext -StorageAccountName "AccountName" -SasToken "xxx"
# Since the file name has date, you can specify which date to be deleted.
# In this sample, we try to delete the files' name contains 201901
$pattern ="201901"
# iterate all the files, and delete
Get-AzStorageFile -ShareName "testfolder" -Path "t1/t1sub" -Context $context | Get-AzStorageFile | where {($_.GetType().Name
-eq "CloudFile") -and ($_.Name -like "*$pattern*")} | Remove-AzStorageFile
删除之前:
删除后 (所有名称包含“ 201901”的文件都将被删除):
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.