【问题标题】:VBScript - Delete json file in a sub-folderVBScript - 删除子文件夹中的 json 文件
【发布时间】:2016-12-12 21:10:22
【问题描述】:

我环顾四周,我能找到的所有示例都是非常通用的,我只需要代码即可从 Temporary Internet Files 文件夹中随机命名的子文件夹中删除单个 .json 文件。

目前,我每次运行 VBScript 时都会下载一个非常小的文件,但它似乎将该文件下载到 Temp Internet Files 并且在每次后续运行时,从那里而不是 Internet 获取它。这是一个必须始终是新的文件。

如何搜索 Temp Internet Files 中的所有子文件夹并删除 forge[1].json?并且,删除它的父文件夹?

对于 dbmitch:

'  DELETE CACHED FORGE FILE  ------------------------ '
Function DelFiles()

    look_subfolders UserProfile & "AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\"

    Set Folder = objFso.GetFolder ( fold )

Sub look_subfolders ( fold )

    For Each objFile in Folder.Files
       If objFile.Name = "forge[1].json" Then
          objFile.Delete
    End If
       Next

'look into subfolders:
    For Each Subfolder in Folder.SubFolders
        look_subfolders Subfolder.Path
    Next
End Sub 

End Function

Set objFso = CreateObject( "Scripting.FileSystemObject" ) 在脚本顶部的其他地方定义(它适用于我使用过的所有其他对象)。

我也试过这个...

Path = UserProfile & "AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5"

Set objFolder = objFso.GetFolder(Path)
Set colFiles = objFolder.Files

For Each objFile in colFiles
   If objFile.Name = "forge[1].json" Then
        objFile.Delete
End If
  Next

For Each objFile In objFolder.SubFolders    
   If objFile.Name = "forge[1].json" Then
        objFile.Delete
   End if
 Next

它从主文件夹中删除文件,但不深入任何子文件夹。

【问题讨论】:

  • 您不能在 VBScript 中嵌套 Subs。所以清理你的代码布局。
  • 不是我的代码,但是我有点感觉它与子有关,所以我尝试只运行不带子的代码,但它实际上并没有删除我需要删除的文件。
  • 我添加了一些其他代码,当我尝试在没有 Sub 的情况下进行操作时。

标签: vbscript


【解决方案1】:

试试这个,这是一个递归调用:

Set fs = CreateObject("Scripting.FileSystemObject")

look_subfolders "C:\windows\temp" 'change the path to your temp folder

Sub look_subfolders(fold)
    Set Folder = fs.GetFolder(fold)

    'folder files:
    For Each objFile in Folder.Files
        If objFile.Name = "forge[1].json" Then
            objFile.Delete
            msgbox "File found and deleted" 'message to confirm deletion
            WScript Quit
        End If
    Next

    'look into subfolders:
    For Each Subfolder in Folder.SubFolders
        look_subfolders Subfolder.Path
    Next
End Sub

【讨论】:

  • 不幸的是,我在定义子的行上遇到语法错误。你有没有机会在没有 Sub 的情况下重现该代码?就像直接代码一样?
  • 通过编辑您的问题来分享您的代码。语法错误可能意味着您输入了错误的内容。您付出的努力越多,所提供的帮助就越大
  • 我已经编辑了代码,是因为我在函数中使用它吗?如果是这样,您可以编辑您的代码以在没有 sub 的情况下实现相同的目标吗?另外,我不需要搜索我正在路径的文件夹,它只是它的子文件夹。
  • 我没有错误。你得到什么错误描述?我可以不用 subs,但不会查看 temp 文件夹的子文件夹。好吗?
  • 我把代码从一个函数中取出来了,它工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多