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
%1
。如果我想在一个不同的目录中指定一个文件,我可以在put命令之后放置该目录的路径吗?假设bat文件与我要发送的文件不在同一目录中%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
每个问题你应该问一个具体的问题。谢谢你的意见。马克能够回答这个问题。谢谢你的帮助,马丁。太好了。这太棒了。谢谢你,马克!