2016-08-06 2 views
1

둘러 본 모든 예제는 매우 일반적인 목적이므로 임시 인터넷 파일 내의 임의의 이름을 가진 하위 폴더에서 단일 .json 파일을 삭제하기 만하면됩니다. 폴더.VBScript - 하위 폴더에서 json 파일 삭제

현재 VBScript가 실행될 때마다 매우 작은 파일을 다운로드하지만 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 

도이 시도하지만 하위 폴더 탐구하지 않습니다.

+0

당신의 VBScript에서 중첩하지 잠수정 수 있습니다. 따라서 코드 레이아웃을 정리하십시오. –

+0

내 코드가 아닐지 모르지만 서브와 관련이 있다는 느낌이 들었습니다. 따라서 하위 코드없이 코드를 실행하려고했지만 삭제가 필요한 파일은 실제로 삭제되지 않습니다. – Bolte

+0

Sub가 없으면 그것을 할려고 할 때 함께 사용했던 다른 코드를 추가했습니다. – Bolte

답변

2

이 시도, 그것은 재귀 호출의 :

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 
+0

아쉽게도 Sub를 정의하는 줄에 구문 오류가 발생합니다. Sub없이 해당 코드를 재현 할 수 있습니까? 똑바로 코드처럼? – Bolte

+0

질문을 편집하여 코드를 공유하십시오. 구문 오류가 발생하면 잘못 입력 한 것입니다. 더 많은 노력을하면 표면에 도움이 더 많이 나타납니다. – dbmitch

+0

코드를 편집했습니다. 함수 내에서 사용하고 있기 때문입니까? 그렇다면 하위 코드없이 동일한 목표를 달성하기 위해 코드를 편집 할 수 있습니까? 또한, 나는 경로 지정 중이라는 폴더를 검색 할 필요가 없습니다. 하위 폴더 일뿐입니다. – Bolte

관련 문제