我已经试着寻找这个答案一段时间了,但似乎找不到我想要的。也许我的措辞很奇怪。
我需要一个脚本,将递归地删除网络共享中的每个子目录中的特定文件。
例如:\share\*abfile.settings
*表示n子目录的个数。剩下的路都是一样的。似乎我可以在Powershell中使用Get-childitem
和remove-item
的组合来做到这一点,但是我在计算我需要的确切命令时遇到了麻烦。
任何帮助将非常感激!谢谢。
应该这样做:
Get-ChildItem '\servershare' -Recurse | ? {
$_.FullName -like '*abfile.settings'
} | Remove-Item
如果您只对\servershare
的直接子文件夹中的.abfile.settings
文件感兴趣,您可以将代码简化为如下内容:
Get-ChildItem '\servershare*abfile.settings' | Remove-Item
将注释代码拆分为长格式:
$folders = Get-ChildItem "\servershare" -Directory
ForEach ($folder in $folders) {
$file = Join-Path $folder.FullName "abfile.settings"
if (Test-Path $file) { Remove-Item $file }
}
虽然我不能让它与Powershell一起工作,但下面的VBS我放在一起似乎工作得很好:
Set FSfolder = FSO.GetFolder(\servershare)
For Each subfolder In FSfolder.SubFolders
UserProfile=subfolder.Name
SettingFile="\servershare" & UserProfile & "abfile.settings"
If FSO.FileExists(SettingFile) Then
FSO.DeleteFile(SettingFile)
End If
Next