2013-03-06 81 views

回答

2

不,我想不出一種方法來在繼續運行批處理文件並將命令發送到ftp進程的同時保持ftp進程處於活動狀態。

但是,如果這符合您的需求,您的批處理文件可以收集所有它首先需要的數據,生成一個包含所有FTP命令文件,然後傳遞文件FTP.EXE作爲最後一步。

例如:

SET /P ftpuser=Username: 
SET /P ftppass=Password: 

:: generate ftp script file 
ECHO %ftpuser% > ftpcommands.txt 
ECHO %ftppass% >> ftpcommands.txt 
ECHO put file.txt >> ftpcommands.txt 
ECHO quit >> ftpcommands.txt 

:: now call ftp and have it process all the commands 
ftp -s:ftpcommands.txt server.com 
2

視窗ftp支持與其-s開關批處理。但是,在等待更多命令的同時保持FTP會話還沒有好的方法。 ftp命令將從頭到尾處理其-s腳本,然後退出。

除了讓批處理腳本生成ftp -s使用的腳本並根據需要運行它之外,我能想到的唯一解決方案是map the FTP server as a drive letter並根據需要複製。

+0

這聽起來很有趣:這將如何工作?假設我想將文件發送到FTP服務器127.0.0.1。如果我把它映射到N:/,我會用什麼命令發送文件? – 2013-03-06 21:15:46

+0

'複製file.ext n:\ path \從\ ftp \ root',就像您複製到閃存驅動器或Windows網絡共享一樣。請注意,我從來沒有嘗試通過命令行將FTP服務映射到驅動器盤符,所以我不能說在什麼情況下它會失敗/成功。例如,如果FTP服務器超時連接,文件複製嘗試重新連接,或者你將不得不'net use N:/ delete'和'net use N:\\ hosts_entry \ directory/user:ftpuser ftppass'到重新連接?我不知道。 – rojo 2013-03-06 21:17:21