是否可以传递一个variables到一个Windows FTP脚本文件?

我有一个批处理脚本,它dynamic地创build一些文件,并根据时间,date等生成一些随机文件名的四个文件。然后需要通过FTP将该file upload到服务器。

截至目前,我的.bat文件有一个类似“ftp -s:ftp.txt”的行。 Ftp.txt包含一些相当简单的FTP脚本的东西:像这样的东西 –

open ftp.myserver.com username password put filename1.dat put filename2.dat put filename3.dat put filename4.dat 

我想要做的是传入需要上传的文件名,然后用“put%file1%”replace“put filename1.dat” – 其中%file1%是传入的文件名variables。

这可能吗? 有人知道如何做到这一点? 还是我的整个方法错了?

Solutions Collecting From Web of "是否可以传递一个variables到一个Windows FTP脚本文件?"

您可以使用bat文件随时生成ftp.txt文件。 只需做一些事情:

 echo ftp.myserver.com>ftp.txt echo username>>ftp.txt echo password>>ftp.txt echo put filename1.dat>>ftp.txt echo put filename2.dat>>ftp.txt echo put filename3.dat>>ftp.txt echo put filename4.dat>>ftp.txt ftp -s:ftp.txt 

当然,现在你已经在bat文件中,你可以使用环境变量和其他的东西代替“filenameX.dat”

例如 :

 echo put %file1% >>ftp.txt 

要更新答案,这是一个更新的批处理文件。 请注意,在用户名和密码之后排除了空格(因为它将空格传递给了ftp站点)。 这也将利用传递给批处理文件的参数。

 echo open ftp.myserver.com>ftp.txt echo username>>ftp.txt echo password>>ftp.txt echo put %1>>ftp.txt echo quit>>ftp.txt ftp -s:ftp.txt 

我不认为窗口中的命令行FTP客户端足够聪明,可以对命令执行环境/ shell变量插值。 但是你可以让控制的.bat文件动态地生成ftp脚本,并且在你仍然处于shell级别时执行可变的东西。