提供源路径

时间:2016-03-31 09:52:23

标签: vbscript

如何使用VBScript通过GUI将输入作为文件夹? 示例:我不想使用以下Window方法。

Function Browse4Folder(strPrompt, intOptions, strRoot)
    Dim objFolder, objFolderItem, objShell
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.BrowseForFolder(0, strPrompt, intOptions, strRoot) 
    If (objFolder Is Nothing) Then
        Browse4Folder = ""
    Else
        Set objFolderItem = objFolder.Self
        Browse4Folder = objFolderItem.Path      
        Set objFolderItem = Nothing
        Set objFolder = Nothing
    End If  
    Set objShell = Nothing
End Function

我想实现以下目标:

  1. 我有一个包含.h,.c,.exe,...
  2. 的文件夹
  3. 我已经编写了删除不需要的文件的操作(比如我只需要.h文件)。
  4. 最终结果应该只是获取.h文件。
  5. 我已经完成的所有操作但是对于语句(1),我已经编写了上面的代码片段,提供了文件夹的手动选择,但我想让它自动化(如果我将运行脚本,所有的操作应该是完成而不做任何手动)。

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,您希望删除指定文件夹中的所有文件,但具有特定扩展名(.h)的文件除外。这可以通过以下程序实现:

Sub DeleteExcept(path, extension)
  Set fso = CreateObject("Scripting.FileSystemObject")
  For Each f In fso.GetFolder(path).Files
    If LCase(fso.GetExtensionName(f)) <> LCase(extension) Then f.Delete True
  Next
End Sub

DeleteExcept "C:\your\folder" "h"