我在ftp会话期间从远程主机到本地计算机复制大量文件。我需要将文件保存在本地目录树中。我的问题是在会话之前可能不存在特定目录。我过去处理这个问题的方法是首先创建目录树来设置我的脚本,甚至不担心目录是否存在,然后从同一个批处理文件中(我使用Python创建批处理文件)我启动了会话并使用lcd更改为正确的目录
md c:\123
md c:\234
md c:\234\2009
loginname
password
cd remotedirectory
lcd c:\123
get somefile.txt
所以以上所有内容都写到了一个批处理文件中,我开始运行它。如果在我尝试创建目录时该目录存在,那么我在终端窗口中看到该目录存在的消息,因为没有发生任何不好的事情,我并不担心它。
当我准备好移动到该目录时,我真正想做的是检查本地目录是否存在,如果它不存在则会创建,但我还没有找到如何在不关闭会话的情况下执行此操作并重新启动它,所以我回到shell。
有没有办法在ftp会话期间执行此操作,同时保持与主机的连接?
答案 0 :(得分:1)
您可以使用!
命令前缀执行CMD MD
命令,以确保本地目录已存在。 e.g:
! md "c:\my data\download"
将创建c:\data\download
目录(如果它尚不存在)(并假设您具有所需的权限)。如果它已经存在,它只会显示一个无害的错误。您还可以使用! md "c:\my data\download" > nul
省略错误消息。或者执行其他命令。
基本上,!
ftp命令前缀之后的所有内容都将作为CMD.EXE
传递给cmd /c {your command(s)}
。如果单独使用!
,它将转义到CMD会话提示并等待用户输入。 CMD的EXIT
命令将关闭CMD会话并返回到FTP提示符。