脚本以递归地从子路径中删除特定文件



我已经试着寻找这个答案一段时间了,但似乎找不到我想要的。也许我的措辞很奇怪。

我需要一个脚本,将递归地删除网络共享中的每个子目录中的特定文件。

例如:

\share\*abfile.settings

*表示n子目录的个数。剩下的路都是一样的。似乎我可以在Powershell中使用Get-childitemremove-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 

相关内容

  • 没有找到相关文章

最新更新