Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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 通过批处理文件进行FTP_Batch File_Ftp - Fatal编程技术网

Batch file 通过批处理文件进行FTP

Batch file 通过批处理文件进行FTP,batch-file,ftp,Batch File,Ftp,我搜索了论坛,找到了一些与这个问题相关的帖子,但是我要寻找的答案不在帖子里 我正在从这篇文章中提取我的推荐人 在此批处理文件中,用户指定了以下内容: @echo off echo user ahk@proflightsimulatoreview.com> ftpcmd.dat echo ahktest>> ftpcmd.dat echo put %1>> ftpcmd.dat echo quit>> ftpcmd.dat ftp -n -s:ftpcmd

我搜索了论坛,找到了一些与这个问题相关的帖子,但是我要寻找的答案不在帖子里

我正在从这篇文章中提取我的推荐人

在此批处理文件中,用户指定了以下内容:

@echo off
echo user ahk@proflightsimulatoreview.com> ftpcmd.dat
echo ahktest>> ftpcmd.dat
echo put %1>> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat ftp.proflightsimulatoreview.com
del ftpcmd.dat
我的问题如下:

PUT C:\FREDDYFROG\FILE.TXT SomeFile.txt
  • put命令显示
    %1
    。如果我想在一个不同的目录中指定一个文件,我可以在put命令之后放置该目录的路径吗?假设bat文件与我要发送的文件不在同一目录中

  • put命令显示
    %1
    ,用户从命令行执行
    MYFTP.BAT c:\temp\hello.txt
    。我不是从命令行执行任何操作,而是从另一个应用程序调用bat文件。如果我不想传递参数,是否可以在路径中硬编码并替换
    %1

  • ftp
    命令作为
    ftp-n-s:ftpcmd.dat ftp.proflightsimulatoreview.com
    嵌入到
    .bat
    文件中。如果我想删除写入文件然后调用文件的步骤,FTP语法是什么?写入一个文件并调用一个文件,然后将其删除,与直接将值放入FTP命令相比,有什么好处


  • 首先,我建议您在脚本中用双引号引上
    %1
    ,以防文件名中有空格,即如果用户:

    MYFTP.BAT "C:\Programs and Junk\Path with Space\file.txt"
    
    问题1和问题2有一个共同的基础,当你理解它时,它将帮助你看到它们是相关的。当您这样做时:

    PUT FILE.TXT
    
    FTP协议接受当前目录中的
    FILE.TXT
    ,并且因为您没有指定目标文件,所以它以相同的名称将其放在FTP服务器上的当前目录中。因此,如果您这样做,您将遇到问题:

    PUT C:\FREDDYFROG\FILE.txt
    
    除非FTP服务器有一个名为“C:\FREDDYFROG”的目录,这在Unix服务器上是极不可能的!因此,您应该考虑在服务器上指定文件名如下:

    PUT C:\FREDDYFROG\FILE.TXT SomeFile.txt
    
    此外,您还可以使用
    CD
    更改服务器上的目录,以便上载的文件“着陆”到服务器上的不同目录中。您还可以使用
    LCD
    在本地更改机器上的目录。因此,下面的命令将本地文件
    \FREDDYFROG\file.TXT
    上传到服务器的文件系统
    /incoming/somefile.TXT

    LCD \FREDDYFROG
    CD /incoming
    PUT FILE.TXT somefile.txt
    
    以下情况也将如此

    PUT \FREDDYFROG\FILE.TXT /incoming/somefile.txt
    
    最后是你的第三个问题。您必须使用Microsft的FTP客户端将命令放入文件中,据我所知,它不会从标准输入读取命令

    如果可用,您可能更喜欢使用
    curl
    ,而不是Micorosft的FTP客户端,这样就无需创建临时脚本文件,并且一次完成全部工作,如下所示:

    curl -v -u user:password -T \FREDDYFROG\FILE.TXT ftp://server/mydir/somefile.txt
    

    每个问题你应该问一个具体的问题。谢谢你的意见。马克能够回答这个问题。谢谢你的帮助,马丁。太好了。这太棒了。谢谢你,马克!