我有一个批处理文件,我希望能够从命令行调用,如:
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%restoffilepath
为FilePathtestParamrestoffilepath
。
答案 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