Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 自动化WinSCP以获取远程目录中的文件列表_Batch File_Vbscript_Winscp - Fatal编程技术网

Batch file 自动化WinSCP以获取远程目录中的文件列表

Batch file 自动化WinSCP以获取远程目录中的文件列表,batch-file,vbscript,winscp,Batch File,Vbscript,Winscp,我读过很多关于WinSCP自动化的书,但其中一些我很难理解,因为它假定了其他方面的知识,如.NET汇编、PowerShell等 我想知道,严格地说,用VBScript和批处理文件类型的行话来说,一旦我下载了portablewinscp.exe,如何简单地打开远程站点,给出用户名和密码,并下载特定目录中的文件列表。仅限FTP协议 有一个: 运行脚本(list.wsf),如下所示: 当然,您也可以像这样运行winscp.com: 有关此方法的更多详细信息,请参阅 <job>

我读过很多关于WinSCP自动化的书,但其中一些我很难理解,因为它假定了其他方面的知识,如.NET汇编、PowerShell等

我想知道,严格地说,用VBScript和批处理文件类型的行话来说,一旦我下载了portable
winscp.exe
,如何简单地打开远程站点,给出用户名和密码,并下载特定目录中的文件列表。仅限FTP协议

有一个:

  • 运行脚本(
    list.wsf
    ),如下所示:


  • 当然,您也可以像这样运行
    winscp.com

    有关此方法的更多详细信息,请参阅

    <job>                                                               
    <reference object="WinSCP.Session"/>
    <script language="VBScript">
    
    Option Explicit
    
    ' Setup session options
    Dim sessionOptions
    Set sessionOptions = WScript.CreateObject("WinSCP.SessionOptions")
    With sessionOptions
        .Protocol = Protocol_Ftp
        .HostName = "ftp.example.com"
        .UserName = "user"
        .Password = "mypassword"
    End With
    
    Dim session
    Set session = WScript.CreateObject("WinSCP.Session")
    
    ' Connect
    session.Open sessionOptions
    
    Dim directoryInfo
    Set directoryInfo = session.ListDirectory("/remote/path")
    
    Dim fileInfo
    For Each fileInfo In directoryInfo.Files
        WScript.Echo fileInfo.Name & " with size " & fileInfo.Length & _
            ", permissions " & fileInfo.FilePermissions & _
            " and last modification at " & fileInfo.LastWriteTime
    Next
    
    ' Disconnect, clean up
    session.Dispose
    
    </script>
    </job>
    
    cscript list.wsf
    
    Set shell = CreateObject("WScript.Shell")
    Set exec = shell.Exec("winscp.com /command ""open ftp://username:password@ftp.example.com/"" ""ls /remote/path"" ""exit""")
    
    WScript.Echo(exec.StdOut.ReadAll())