如何使用ftp将变量传递到批处理文件的%0部分?

时间:2015-06-12 18:48:45

标签: windows batch-file cmd ftp

我有一个批处理文件,我希望能够从命令行调用,如:

myBatch.bat testParam

该批处理文件如下:

set sid=%1

C:\Windows\System32\ftp.exe -s:%0
goto done
open servername
username
password
get 'FilePath%sid%restoffilepath' targetPath\%sid%MyName.txt
bye
:done

但是,我似乎无法使FilePath%sid%restoffilepath部分正常工作 - 我相信这是因为%0将输入视为字面意思,但我并非100%肯定。 %sid%变量未展开。

在这种情况下,我基本上希望FilePath%sid%restoffilepathFilePathtestParamrestoffilepath

1 个答案:

答案 0 :(得分:5)

仔细想想你在这里做了什么 - ftp.exe正在读取文件。您的批处理脚本(它知道%1是什么)不会将数据提供给ftp.exe。

您需要做的是将脚本发送到文件,然后运行ftp命令:

set sid=%1

echo open servername >> myftp.txt
echo username >> myftp.txt
echo password >> myftp.txt
echo get 'FilePath%sid%restoffilepath' targetPath\%sid%MyName.txt >> myftp.txt
echo bye >> myftp.txt

C:\Windows\System32\ftp.exe -s:myftp.txt