我一直在努力在PowerShell中重命名文件夹中超过5天的所有文件。
文件名全部读作:
XTYPE -to- CoOrd & WBS - 20140313
XTYPE -to- CoOrd & WBS - 20140314
等。 偶尔会出现一些轻微的异常现象,例如:
XTYPE -to- CoOrd & WBS - 20140316 - do not use
XTYPE -to- CoOrd & WBS - 20140314 (AutoSaved)
现在我只想从每个文件中删除“& WBS”(所有文件都以excel格式保存,以便文件存在)
XTYPE -to- CoOrd- 20140313
XTYPE -to- CoOrd- 20140314
XTYPE -to- CoOrd- 20140316 - do not use
XTYPE -to- CoOrd- 20140314 (AutoSaved)
现在我的代码到目前为止我相信已经足够了......
$myFolder = '\\iiGlasgow.co.uk\public\Controls\Archived Files\'
ForEach ($File in Get-Childitem $myFolder | Where-Object { $_.LastWriteTime -lt (get-date).AddDays(-5)})
所以我设置了文件夹并建议PowerShell只处理5天以上的项目。
我无法让它替换部分字符串元素但是...它可能非常简单我只是看不到它。我已经浏览了互联网并尝试了各种各样的迭代,但它没有发生。
所以我认为最接近解决方案的最后元素是......
{
$myFile = $file.name
$myFullFilename = $file.FullName
$myRenamed = $myFile.Replace(" & WBS ","")
}
完整的脚本是为了方便吗?
$myFolder = '\\iiGlasgow.co.uk\public\Controls\Archived Files\'
ForEach ($File in Get-Childitem $myFolder | Where-Object { $_.LastWriteTime -lt (get-date).AddDays(-5)})
{
$myFile = $file.name
$myFullFilename = $file.FullName
$myRenamed = $myFile.Replace(" & WBS ","")
}
我对你的错误的帮助和指示一如既往地受到重视!
答案 0 :(得分:2)
我会扩展Where-Object
cmdlet并过滤包含& WBS
的所有基本名称。然后只需使用Rename-item
cmdlet重命名该文件:
$myFolder = '\\iiGlasgow.co.uk\public\Controls\Archived Files\'
Get-Childitem $myFolder |
Where-Object { $_.LastWriteTime -lt (get-date).AddDays(-5) -and $_.BaseName -Match ' & WBS ' } |
Foreach {
$_ | Rename-Item -NewName ($_.Name -replace ' & WBS ')
}