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

end*_*and 1 windows ftp cmd batch-file

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

myBatch.bat testParam
Run Code Online (Sandbox Code Playgroud)

该批处理文件如下:

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
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法使该FilePath%sid%restoffilepath部分正常工作 - 我相信这是因为它将%0输入视为字面意思,但我不是百分之百确定.%sid%变量未展开.

我基本上是想有FilePath%sid%restoffilepathFilePathtestParamrestoffilepath在这种情况下.

Ton*_*kle 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
Run Code Online (Sandbox Code Playgroud)