Batch file ftp.exe可以';找不到属于环境变量值的文件夹

Batch file ftp.exe可以';找不到属于环境变量值的文件夹,batch-file,cmd,ftp,Batch File,Cmd,Ftp,我想使用Windows的标准ftp客户端(我知道它不好,但我需要它是因为特定的原因,我让它正常工作) 要指定下载文件的路径,必须键入lcd[path] 这很好,但当我想为文件夹(如%temp%)使用环境变量时,却找不到它们 它只是没有内置到客户机中,还是我做错了什么 日志: ftp>lcd%temp% %临时%:找不到文件 环境变量扩展不能仅仅因为我们想要或期望它就起作用。它必须被设计成一个程序。作为: 仅仅因为你把某些东西粘在百分号之间并不意味着 神奇的百分之十精灵会突袭过来 执行环境变量扩展

我想使用Windows的标准ftp客户端(我知道它不好,但我需要它是因为特定的原因,我让它正常工作)

要指定下载文件的路径,必须键入
lcd[path]

这很好,但当我想为文件夹(如
%temp%
)使用环境变量时,却找不到它们

它只是没有内置到客户机中,还是我做错了什么

日志:

ftp>lcd%temp%
%临时%:找不到文件

环境变量扩展不能仅仅因为我们想要或期望它就起作用。它必须被设计成一个程序。作为:

仅仅因为你把某些东西粘在百分号之间并不意味着 神奇的百分之十精灵会突袭过来 执行环境变量扩展

换句话说:
ftp.exe
中的
lcd
命令必须设计为在其命令行上执行环境变量扩展。它不是这样设计的,这就是为什么您会收到错误消息

如果要使用环境变量更改目录,一种解决方法是在启动
ftp.exe
之前,在
cmd.exe
提示符下使用命令
cd%temp%
(或
在PowerShell中设置位置“$Env:temp”


评论者就您的问题指出的另一个潜在解决方法是动态创建
ftp.exe
脚本文件。

为您要使用的ftp命令创建一个脚本文件,然后让
ftp
执行脚本文件。下面是实现@Squashman建议的一种方法。在编写.ftp文件脚本的
ECHO
语句中使用所需的所有变量。