『壹』 請教高手,用批處理命令FTP自動下載文件。
① 如果我理解沒錯,遠端目錄,最深層的那個子目錄(名稱是日期)的那個,每天都是變的;你要下載的是裡面的文件(不含子目錄);文件下載到本地E:dzyl下,而且目錄也是按伺服器上的日期創建。
② 批處理固定每天運行,從伺服器前一天的目錄下載文件。
如果理解正確,那麼下面的代碼可以實現(已測試過),ip地址你需要修改!你的操作系統如果是英文,也需呀修改(具體看腳本中的提示)
@echooff&
set"ftp_site=19.6.5.34"
set"ftp_id=pracq"
set"ftp_pwd=123456"
set"ftp_remote_dir=/ftp/bos/at/pracq/"
set"ftp_local_dir=E:dzyl"
:100
set"ftpcmd={{%random%}}.ftp"
ifexist%ftpcmd%goto100
::英文系統用下面這個,把下面一行中的::去除
::set"today=%date:~6,4%%date:~0,2%%date:~3,2%"
::中文系統用下面這個,如果是英文,在下面一行句首添加::
set"today=%date:~0,4%%date:~5,2%%date:~8,2%"
settoday=!today:~0,4!-!today:~4,2!-!today:~-2!
call:Date2Day!today!1Yesterday
setftp_remote_dir=!ftp_remote_dir!!yesterday!
>%ftpcmd%echoopen!ftp_site!
>>%ftpcmd%echo!ftp_id!
>>%ftpcmd%echo!ftp_pwd!
>>%ftpcmd%echocd!ftp_remote_dir!
>>%ftpcmd%echobye
for/f%%iin('ftp-s:%ftpcmd%')doif{%%i}=={550}(
!
gotoend
)
setftp_local_dir=!ftp_local_dir!!yesterday!
md!ftp_local_dir!1>nul2>&1
ifnotexist!ftp_local_dir!(
!
gotoend
)
>%ftpcmd%echoopen!ftp_site!
>>%ftpcmd%echo!ftp_id!
>>%ftpcmd%echo!ftp_pwd!
>>%ftpcmd%echocd!ftp_remote_dir!
>>%ftpcmd%echolcd!ftp_local_dir!
>>%ftpcmd%echobinary
>>%ftpcmd%echopromptn
>>%ftpcmd%echomget*.*
>>%ftpcmd%echobye
set/acount=0
for/f%%iin('ftp-s:%ftpcmd%')do(
if{%%i}=={226}set/acount=!count%+1
)
if!count!gtr0(
echoDone.!count!file^(s^)downloaded.
)else(
echoNofilehasbeendownloaded.
)
gotoend
:Date2Day
::call:Date2Day2007-11-122Day
@echooff&setlocal
for/f"tokens=1-3delims=/-:,"%%ain('echo/%~1')do(
set/ayy=%%a,mm=100%%b%%100,dd=100%%c%%100
)
set/az=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set/aj=j/5+dd+y*365+y/4-y/100+y/400-2472633
set/ai=j-%~2,a=i+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set/ad=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set/add=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if%mm%LSS10setmm=0%mm%)&(if%dd%LSS10setdd=0%dd%)
endlocal&set%~3=%yy%%f%%mm%%f%%dd%&
goto:eof
:end
ifexist%ftpcmd%(typenul>%ftpcmd%&&del/f/q%ftpcmd%1>nul2>&1)
endlocal&@echoon
測試運行結果:
Done.5file(s)downloaded.
『貳』 怎樣使用批處理來操作FTP命令
將文件傳送到運行FTP伺服器服務(經常稱為後台程序)的計算機以及將文件從該計算機
傳出。可以交互使用Ftp。
FTP[-v][-d][-i][-n][-g][-s:filename][-a][-A][-x:sendbuffer][-r:recvbuffer][-b:asyncbuffers][-w:windowsize][host]
-v禁止顯示遠程伺服器響應。
-n禁止在初始連接時自動登錄。
-i關閉多文件傳輸過程中的
互動式提示。
-d啟用調試。
-g禁用文件名通配(請參閱GLOB命令)。
-s:filename指定包含FTP命令的文本文件;命令
在FTP啟動後自動運行。
-a在綁字數據連接時使用所有本地介面。
-A匿名登錄。
-x:sendsockbuf覆蓋默認的SO_SNDBUF大小8192。
-r:recvsockbuf覆蓋默認的SO_RCVBUF大小8192。
-b:asynccount覆蓋默認的非同步計數3
-w:windowsize覆蓋默認的傳輸緩沖區大小65535。
host指定主機名稱或要連接到的遠程主機
的IP地址。
注意:
-mget和mput命令將y/n/q視為yes/no/quit。
-使用Ctrl-C中止命令。
『叄』 批處理來完成FTP文件自動下載
前幾天筆者遇到一個需求,在windows平台下使用ftp來遠程獲取交換機的配置文件。鑒於每一次都需要在命令行裡面手動輸入,過程繁瑣,於是想著使用腳本來完成這個重復性的工作,實現自動化。python的ftplib庫也可以解決這個問題,但是筆者未來和其他bat腳本揉在一起,直接windows平台下使用批處理bat來完成。
ftp -s可以指定包含ftp命令的文本文件,ftp啟動後這些命令將自動運行。
主批處理文件:ftp_main.bat
ftp命令批處理文件:ftp_task.bat,文件放置於D盤下。
除了FTP之外,date修改電腦日期,time修改電腦時間,echo ^G測試電腦聲音。注意,「^G」是在命令行中使用ctrl + g輸入的,可以使用echo ^G > test.txt來獲取這個字元。
最後這個腳本東湊西湊,界面如下:
『肆』 批處理怎樣在WINDOWS 資源管理器中打開FTP
需要做一個批處理,一個ftp腳本,放到一個目錄下,雙擊startftp.bat使用。1、第一個保存為startftp.batftp -s:ftp.ftp2、第二個保存為ftp.ftp,具體代碼根據實際情況而定,第一行open後面是ftp地址,第二行user後面是用戶名,第三行填密碼,之後就是需要使用的ftp命令了。open 10.0.0.1user usernamepassword get * bye
『伍』 用批處理上傳文件到ftp目錄下的實現方法
為了快速將項目中開發的補丁程序通過ftp快速上傳到linux下,感覺每次用flashFxp等工具麻煩),寫了個簡單的批處理,與大家分享一下。
將以下代碼保存為.bat格式的文件,每次將要上傳的補丁保存在規定的本地目錄中,只要雙擊執行此文件就能上傳到你的指定目錄上。
說明:
192.168.1.1
ftp
ip
地址
21
埠
username
用戶名
password
密碼
temp.txt
保存ftp信息的臨時文件,上傳後刪除
C:\Documents
and
Settings\user\桌面\patch\upload_dir\1.zip
上傳upload_dir目錄下的zip文件
test/temp%date%.rar
上傳到用戶目錄下並且以「temp+當前日期」
對上傳文件重命名
最後是刪除本地文件
復制代碼
代碼如下:
@echo
off
echo
open
192.168.1.1
21
>>
temp.txt
echo
user
username
password>>
temp.txt
echo
bin
>>
temp.txt
echo
put
"C:\Documents
and
Settings\user\桌面\patch\upload_dir\1.rar"
"test/temp%date%.rar"
>>
temp.txt
echo
bye
>>
temp.txt
ftp
-n
-s:"temp.txt"
del
/q
C:\Documents
and
Settings\user\桌面\patch\upload_dir\1.rar
del
/q
temp.txt
pause
以上內容是小編給大家介紹的用批處理上傳文件到ftp目錄下的實現方法,希望對大家有所幫助!
『陸』 如何使用批處理命令登陸ftp伺服器
rem指定FTP用戶名
setftpUser=abc
rem指定FTP密碼
setftpPass=1234
rem指定FTP伺服器地址
setftpIP=100.10.100.1
(echo.%ftpUser%
echo.%ftpPass%)>ftp.sh
ftp-v-i-s:"ftp.sh"%ftpIP%
『柒』 如何在BAT批處理文件中實現FTP登陸
rem例如列出ftp文件,可輸入命令ls
@echooff
setftpulr=寫ftp地址
setftpuser=寫ftp用戶名
setftppwd=寫ftp密碼
setftpport=寫ftp埠
echoopen%ftpulr%%ftpport%>openFtp.txt
echo%ftpuser%>>openFtp.txt
echo%ftppwd%>>openFtp.txt
echo輸入命令:
set/pvar=
echo輸入的是%var%
echo%var%>>openFtp.txt
echobye>>openFtp.txt
echoTransportdata......
ftp-s:openFtp.txt
delopenFtp.txt
pause
『捌』 想做一個批處理 將指定文件用FTP上傳
時間晚了好久,不知道到還有用沒,希望有用的可以拿來參考
目的監控路徑下面文件,上傳到指定FTP。上傳完畢後文件備份。
方法個人運用兩個bat第一個監控,第二個FTP上傳
1.監控。放到你要監控的文件夾路徑下面建立start.bat 下面是我放的內容。
@echo off
:memu
for /f "delims=" %%a in ('dir /a-d/b *.zip') do (
if not [%%a]==[] (
echo %time%發現:%%a
)
)
start "" Q:BCPbackupftpceshiftpuploud.bat
ping 127.0.1 -n 60 >nul
goto memu
在段中,你要監控的文件類型就是*.zip。可以改成你需要的比如*.jpg等
刪除臨時文件,退出
然後1在監控,有文件後啟動FTP上傳完成後退出
這里我沒有找到決絕辦法的是FTP上傳完的文件如何改名。有知道的大神告訴一下別太難