나는 현재 프로그램을 실행하는 동안 프로그램의 파일을 자동으로 삭제하려고합니다. Windows에서 파일을 수동으로 삭제하면 프로그램에서 변경 사항을 인식하지만, 스크립트로 파일을 삭제하면 이 아닌이 아닙니다.스크립트에 의한 수동 삭제와 삭제의 차이점은 무엇입니까? (박쥐 또는 VB)
모든 파일이 삭제됩니다. 나는 배트와 vbs 스크립트를 시도하고 스크립트를 수동으로 그리고/또는 프로그램 내에서 호출하여 실행했다 - 항상 같은 결과로 : 수동 삭제는 인식되고 스크립팅 된 삭제는 아니다. 필자는 LUA 4.0에서 자동으로 파일을 삭제하는 스크립트/실행 파일을 호출 할 수 있다는 점을 언급해야합니다.
Windows에서 파일을 삭제하고 스크립트에 의한 삭제와 다른 점이 있다면 정확히 어떻게됩니까? 100 % Windows 삭제 루틴을 에뮬레이트하는 방법이 있습니까? 아니면 내가 모르는 비밀스런 '폴더가 업데이트되었습니다'플래그가 있습니까? 자연 폴더 속성 DateLastAccessed
및 DateLastModified
이 업데이트되었습니다. 완성도를 위해서
*Random*.level
에 맞는 기존 파일을 삭제하고 빈 폴더를 제거) 내 스크립트입니다 :
BAT :
REM delete all "Random" maps
del /S *Random*.level
REM remove empty folders
for /f "delims=" %%d in ('dir /S /B /A:D ^| sort /r') do rd "%%d"
VBS :
' create shell
Set objShell = CreateObject("Wscript.Shell")
' get current path
strPath = objShell.CurrentDirectory
' create file system object
Set oFSO = CreateObject("Scripting.FileSystemObject")
' delete all random level files
ProcessSubFolders oFSO.GetFolder(strPath)
Sub ProcessSubFolders(oFolder)
' get all files in the folder
Set cFiles = oFolder.Files
' for every file
For Each oFile In cFiles
' check if it's a level file and has "Random" in its name
If Right(oFile.Name, Len(".level")) = ".level" And InStr(oFile.Name, "Random") Then
' if true delete it
oFile.Delete
End If
Next
' process all subfolders in the same manner
For Each oSubFolder In oFolder.SubFolders
ProcessSubFolders oSubFolder
Next
' if folder is empty
If oFolder.SubFolders.Count = 0 And oFolder.Files.Count = 0 Then
' delete it
oFolder.Delete
End If
End Sub
두 스크립트는 "수동"삭제와 같은 방식으로 파일을 삭제해야합니다. 삭제를 "인식"하지 않는 코드를 게시하십시오. –