Vbscript 浏览文件夹的批处理命令

Vbscript 浏览文件夹的批处理命令,vbscript,batch-file,directory,Vbscript,Batch File,Directory,我不熟悉批处理脚本。我想以编程方式浏览文件夹,然后将当前目录的内容复制到指定目录 我有一个VBScript脚本(如下),允许我浏览文件夹。如何将批处理文件与其链接?也就是说,在运行脚本并选择文件夹后,应将文件移动到所选文件夹。可能吗 以下是用于浏览文件夹的VBScript代码: Option Explicit WScript.Echo BrowseFolder( "C:\Program Files", True ) WScript.Echo BrowseFolder( "My Computer

我不熟悉批处理脚本。我想以编程方式浏览文件夹,然后将当前目录的内容复制到指定目录

我有一个VBScript脚本(如下),允许我浏览文件夹。如何将批处理文件与其链接?也就是说,在运行脚本并选择文件夹后,应将文件移动到所选文件夹。可能吗

以下是用于浏览文件夹的VBScript代码:

Option Explicit

WScript.Echo BrowseFolder( "C:\Program Files", True )
WScript.Echo BrowseFolder( "My Computer", False )
WScript.Echo BrowseFolder( "", False )


Function BrowseFolder( myStartLocation, blnSimpleDialog )
' This function generates a Browse Folder dialog
' and returns the selected folder as a string.
'
' Arguments:
' blnSimpleDialog   [boolean] if False, an additional text field will be
'                             displayed where the folder can be selected
'                             by typing the fully qualified path
'
' Returns:          [string]  the fully qualified path to the selected folder
'
' Based on the Hey Scripting Guys article
' "How Can I Show Users a Dialog Box That Only Lets Them Select Folders?"
' http://www.microsoft.com/technet/scriptcenter/resources/qanda/jun05/hey0617.mspx
'
' Function written by Rob van der Woude
' http://www.robvanderwoude.com
    Const MY_COMPUTER   = &H11&
    Const WINDOW_HANDLE = 0 ' Must ALWAYS be 0

    Dim numOptions, objFolder, objFolderItem
    Dim objPath, objShell, strPath, strPrompt

    ' Set the options for the dialog window
    strPrompt = "Select a folder:"
    If blnSimpleDialog = True Then
    numOptions = 0      ' Simple dialog
    Else
        numOptions = &H10&  ' Additional text field to type folder path
    End If

    ' Create a Windows Shell object
    Set objShell = CreateObject( "Shell.Application" )

    ' If specified, convert "My Computer" to a valid
    ' path for the Windows Shell's BrowseFolder method
    If UCase( myStartLocation ) = "MY COMPUTER" Then
        Set objFolder = objShell.Namespace( MY_COMPUTER )
        Set objFolderItem = objFolder.Self
        strPath = objFolderItem.Path
    Else
        strPath = myStartLocation
    End If

    Set objFolder = objShell.BrowseForFolder( WINDOW_HANDLE, strPrompt, _
                                          numOptions, strPath )

    ' Quit if no folder was selected
    If objFolder Is Nothing Then
        BrowseFolder = ""
        Exit Function
    End If

    ' Retrieve the path of the selected folder
    Set objFolderItem = objFolder.Self
    objPath = objFolderItem.Path

    ' Return the path of the selected folder
    BrowseFolder = objPath
End Function

是否要在批处理中使用与VBScript相同的函数?如果是这样的话,我认为您不能将OpenFileDialog与批处理一起使用,这在Visual Studio和C#(值得一看)中非常简单。如果您想批量执行,可以使用以下方法:

set /p path=Enter folder path: 
xcopy /e %cd% %path%

如果您真的想使用批处理,您可以将值传递给环境变量或将其写入io.out以将值输出,但这些都不可取。您还可以将该值写入临时文本文件,并让批处理将其用作输入。 最好也是最简单的解决方案是在脚本本身中进行复制,为此提供了大量的示例,也有更多的可能响应错误条件。 如果您找不到,请告诉我,我有一个正在使用中,但需要在发布前剥离一些数据