我有一个批处理脚本,动态创建一些文件,并生成四个文件与一些随机的文件名基于时间,日期等。然后,它需要上传该文件通过FTP到服务器。
到目前为止,我的.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 filename1.dat“替换为"put %file1%”--其中%file1%是传入的文件名变量。
这个是可能的吗?有人知道怎么做吗?还是我的整个方法都错了?
发布于 2011-03-03 00:58:32
您可以使用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发布于 2013-06-03 08:33:20
为了更新答案,这里有一个更新的批处理文件。请注意,用户名和密码后的空格被排除在外(因为它将一个空格传递给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发布于 2011-03-03 00:57:20
我不认为windows中的命令行FTP客户端足够智能,无法在命令上进行环境/shell变量插值。但是,您可以让控制.bat的文件动态生成ftp脚本,并在您仍处于shell级别时执行变量操作。
https://stackoverflow.com/questions/5170627
复制相似问题