我一直在 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 ","")
}
一如既往地感谢您的帮助和对我错误的指出!
最佳答案
我将扩展 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 ')
}
关于powershell - 在 Powershell 中替换部分文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38119917/