0

我在 ftp 会话期间将大量文件从远程主机复制到本地计算机。我需要将文件保存在本地目录树中。我的问题是会话之前可能不存在特定目录。我过去处理这个问题的方法是通过首先创建目录树来设置我的脚本,甚至不用担心目录是否存在,然后从同一个批处理文件中(我使用 Python 创建批处理文件)我开始我的session 并使用 lcd 切换到正确的目录

md c:\123
md c:\234
md c:\234\2009
loginname
password
cd remotedirectory
lcd c:\123
get somefile.txt

所以以上所有内容都写到一个批处理文件中,然后我开始运行它。如果在我尝试创建目录时该目录存在,那么我会在终端窗口中看到该目录存在的消息,并且由于没有发生任何不好的事情,我并不担心它。

我真正想做的是在我准备好移动到该目录时检查本地目录的存在,如果它不存在,它会被创建,但我还没有找到如何在不关闭会话并重新启动它的情况下执行此操作所以我回到贝壳。

有没有办法在 ftp 会话期间执行此操作,同时保持与主机的连接?

4

1 回答 1

1

您可以使用!命令前缀来执行 CMDMD命令,以确保本地目录已经存在。例如:

! md "c:\my data\download"c:\data\download如果目录尚不存在(并假设您具有所需的权限),则将创建目录。如果它已经存在,它只会显示一个无害的错误。您也可以使用! md "c:\my data\download" > nul来省略错误消息。或者执行其他命令。

基本上,!ftp 命令前缀之后的所有内容都将传递给CMD.EXEas cmd /c {your command(s)}。如果!单独使用,它将转义到 CMD 会话提示符并等待用户输入。CMD 的EXIT命令将关闭 CMD 会话并返回到 FTP 提示符。

于 2012-10-06T19:33:20.617 回答