【问题标题】:PowerShell raw FTPPowerShell 原始 FTP
【发布时间】:2011-09-10 06:22:01
【问题描述】:

我希望使用 FTP 来编写大型机作业流。为此,我可以通过 FTP 连接到大型机并运行以下命令:

QUOTE TYPE E
QUOTE SITE FILETYPE=JES
PUT myjob.jcl

那么,我将如何在 PowerShell 中执行此操作?我已经阅读了很多关于标准 FTP 传输的内容,但我还没有看到任何关于自定义准备调用的内容。

感谢阅读。

编辑

这是我想出的解决方案,根据这里的答案和this article

@echo off
echo user %1> ftpcmd.dat
echo %2>> ftpcmd.dat
echo QUOTE TYPE E>> ftpcmd.dat
echo QUOTE SITE FILETYPE=JES>> ftpcmd.dat
echo put %3>> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat %4
del ftpcmd.dat

用法:

C:\>fileup user123 pa$$word myfile.txt ftp.server.com

【问题讨论】:

    标签: powershell ftp mainframe jcl


    【解决方案1】:

    您能否对 FTP 使用 -s 开关并指定一个包含要运行的命令的文件?

      -s:filename     Specifies a text file containing FTP commands; the
                      commands will automatically run after FTP starts.
    

    然后你可以在 PowerShell 中调用它为

    ftp -s:<myscript> <host>
    

    【讨论】:

    • 我得出了同样的结论。我实际上创建了一个 .bat 文件来处理这个问题。请参阅我的编辑以了解我想出的解决方案。
    【解决方案2】:

    如果您熟悉 .NET 并希望以编程方式进行操作,这里有一个类似的问题/答案:

    Upload files with FTP using PowerShell

    这几乎可以归结为使用System.Net.FtpWebRequest 来完成这项工作。乍一看,它似乎相当简单。

    【讨论】:

    • Scott,感谢您的反馈,但 System.Net.FtpWebRequest 没有“任意”调用的空间。 FtpWebRequest 不支持 QUOTE TYPE E 和 QUOTE SITE FILETYPE=JES。
    猜你喜欢
    • 2011-02-01
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多