batftp上傳
實例一 直接BAT調用FTP命令 ftpbat bat內容 (***大家建立bat文件不要命名為ftp bat 執行時會有問題***)
復制代碼 代碼如下:
ftp open lgh get sql rar bye
從圖上的結果看 bat腳本直接調用xp的FTP命令是不行的 執行時H:>ftp會一直死循環 我這里的XP系統是SP 的 其它版本的 我沒有作測試 如果有不同 歡迎大家留言告之 實例二 用put get上傳 下載單個文件 把XP機器上H:js目錄下文件flower zip上傳到FTP伺服器 把FTP伺服器中的sql rar文件下載到XP機器上的H:JS目錄 ftp get put bat內容如下
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo get sql rar >> %ftpfilename% echo put flower zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
我們來看看結果 見下面兩張圖 從XP系統上看 H盤的JS目錄 多了個sql rar FTP伺服器上的根目錄多了個flower zip 這說明 剛才的腳本完成正常的執行了 達到了預期的目的
實例三 用put get上傳 下載多個文件 在XP機器上把flower zip復制一次 改名為flower zip 在XP機器上把把第二次實例下載的sql rar文件刪除 以免影響到本次操作 在FTP伺服器上把第二次實例上傳的flower zip文件刪除 以免影響到本次操作 把XP機器上H:js目錄下文件flower zip 和flower zip上傳到FTP伺服器 ftp get put many bat內容如下
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
到FTP伺服器上查看根目錄 看flower zip與flower zip是否已成功上傳 從圖上看 只成功上傳了flower zip文件
剛那個ftp get put many bat腳本里echo put flower zip flower zip>> %ftpfilename% flower zip是傳輸的最後一個文件 是不是用put時 意味著bat在處理上傳時 只認最後一個文件呢 我們再多加個文件flower zip 來驗證
在XP機器上把flower zip復制一次 改名為flower zip在FTP伺服器上把第二次實例上傳的flower zip文件刪除 以免影響到本次操作
ftp get put many bat內容修改如下
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put flower zip flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
結果 還是只成功上傳了flower zip 因bat雙擊時 執行過程會一閃而過 我們看不到執行過程 到命令行去執行下 看到底出了什麼問題
命令行 執行ftp get put many bat腳本 從執行情況看 flower zip三個文件都是put的 但在傳輸時 卻只傳了flower zip 真不解 有知道的朋友嗎?給點方向
再換個方式 用通配符* 試試 ftp get put many bat內容修改如下
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put flower* zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
在FTP伺服器上把上傳的flower文件全部刪除 以免影響到本次操作執行ftp get put many bat 結果只有flower zip文件上傳成功了 呵 flower zip文件 怎麼都不能上傳 ???
其實用put傳輸多個文件 完全可用重復的方式取代 比如 ftp get put many bat內容修改如下
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put flower zip >> %ftpfilename% echo put flower zip >> %ftpfilename% echo put flower zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
實例四 用mput mget上傳 下載多個文件 在FTP伺服器上刪除有關flower的文件ftp mget mput many bat內容如下:
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo mput flower zip flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
雙擊ftp mget mput many bat後 發現系統彈出一窗口後 就卡住了 停止不前
原因是用了mput命令 但沒有用Prompt關閉交互
ftp mget mput many bat內容修改如下:
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo Prompt >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo mput flower zip flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
再次執行ftp mget mput many bat 結果見下圖
用通配符*試試在FTP伺服器上刪除有關flower的文件ftp mget mput many bat內容修改如下:
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo Prompt >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo mput flower* zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
照樣成功上傳有關flower* zip文件 因為結果與上一步是一樣的 所以就不抓圖了 實例五 用ascii在windows系統間傳輸非文本文件 把XP電腦上的rmb jpg通過ascii傳到FTP伺服器的根目錄
ftp get ascii bat內容修改如下:
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo ascii >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put rmb jpg>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
執行ftp get ascii bat後 發現rmb jpg可以正常上傳 並且可以正常打開 那 這個現象與前面所以的ascii不能傳輸非文本東西有出入 這是怎麼回會事呢 這是因為 FTP伺服器是WINDOWS系統 XP電腦上的bat腳本也是在windows系統上運行的 所以bat在windows系統里用FTP傳輸文件 不管是用ascii 還是用binary 都是可以的 接下來我們再做一個實驗 FTP伺服器選centos 再測下ascii傳輸非文本文件問題 實例六 用ascii在windows系統與linux系統間傳輸非文本文件 在RHEL 位系統上建立一vsftpd伺服器 上面說過redhat默認啟用二進制傳輸 關閉了ascii碼傳輸 所以我們還要修改一下vsftpd的配置文件 修改/etc/vsftpd/nf文件 允許客戶端進行ascii傳輸 並重啟vsftpd
把rmb jpg放到FTP伺服器 大家注意下H:js目錄下只有ftp getascii bat文件
ftp getascii bat文件內容修改如下
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo ftp >> %ftpfilename% echo redhat >> %ftpfilename% echo asc >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo get rmb jpg >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
執行ftp getascii bat 看結果 rmb jpg文件有下載到XP電腦里 雙擊這個文件 發現圖像亂碼 文件被破壞了 都是ascii碼傳輸惹的禍換bin傳輸 測試一下在XP電腦上刪除rmb jpg文件 再雙擊ftp getascii bat文件 去從LINUX的FTP伺服器下載一個rmb jpg文件
修改ftp getascii bat 把ascii改給二進制傳輸
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo ftp >> %ftpfilename% echo redhat >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo get rmb jpg >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
結果 文件正常下載 圖像也顯示正常 lishixin/Article/program/qrs/201401/30223
② 求大神們寫一個從本地上傳到FTP的bat
Allway Sync
③ 用批處理,將一個文件夾裡面的文件自動上傳到ftp上
此項操作需要製作兩個文件。
第一個文件(批處理文件):ftp.bat
ftp-s:ftp.ftp
(ping127.0.0.1-n2)>nul
%0
第二個文件(ftp腳本)ftp.ftp
open10.10.10.10
userUSERNAME
PASSWORD
lcd"D:ftp"
put*.txt
!mv"D:ftp*.txt""D:ftpak"
bye
將ftp.bat和ftp.ftp放置到一個文件夾內,使用時雙擊ftp.bat。
該腳本調用ftp.ftp,將"D:ftp」中的所有txt結尾的文件,上傳到"ftp://10.10.10.10/sys"文件夾中,然後執行備份"D:ftp*」到"D:ftpak"。每次操作完成後延遲1秒後重新執行。
ftp用戶名和密碼,在ftp.ftp的第二、三行更改(大寫的部分分別是賬戶和密碼,若ftp是匿名訪問,則用戶名、密碼均為anonymous)。
每次操作的延遲時間在ftp.bat第二行更改(更改-n 2的值為需要延遲的時間+1,時間單位為1秒)。
④ 怎樣用bat上傳文件到ftp
參照:.netrc文件格式:
open
ip
用戶名
密碼
bin
mput
d:\aa\目錄下的txt文件
close
bye
以上內容建立一個文件,使用:
ftp
-i
-s:文件名
方式做計劃任務調用,就可以了。
⑤ 請問自動上傳特定目錄到FTP伺服器的BAT批處理怎樣寫
您可以使用cmd環境的rar,對所有B00n文件夾下的C003進行整體打包,然後上傳各個打包的rar文件,我假定您AAA目錄下所有B大頭的目錄都有C003子目錄,並且都要備份上傳。這個rar工具可以在winrar的安裝目錄下找到,拷貝到AAA目錄下就行了。
按您的描述,增量備份用批處理可能會比較麻煩,我下面幫您寫的是全量備份的,不過rar做的壓縮包會保持文件的完整目錄結構。
把下面的命令存為批處理文件:my_ftp_put_C003.bat,這個bat文件要放在AAA目錄下。
@echo off
@set d=E:\AAA
@cd /d %d%
rem 下面三行是ftp的IP、用戶名、密碼,請自行替換
@set ftpip=127.0.0.1
@set ftpusr=username
@set ftppwd=password
@for /f "delims=" %%i in ('dir B* /ad /b') do @rar a AAA_%%i_C003.rar %%~fi\C003
@echo open %ftpip%>%d%\tmp.ftp
@echo %ftpusr%>>%d%\tmp.ftp
@echo %ftppwd%>>%d%\tmp.ftp
@for /f "delims=" %%i in ('dir AAA_B*.rar /b') do @echo put %%i >>%d%\tmp.ftp
@echo quit >>%d%\tmp.ftp
@ping -n 2 127.0.0.1 >nul
@ftp -s:%d%\tmp.ftp
@del %d%\tmp.ftp
上面有幾行,在注釋後面是ftp的ip地址、用戶名、密碼,您要改成您自己的。
以上批處理我已經在Win10+ftp的環境下測試過了,希望對您有幫助。
⑥ 如何寫一個bat批處理自動上傳文件到SFTP
@echo off::地址set ftpadd=192.168.0.3::用戶名set user=admin::密碼set pw=pass::ftp臨時文件set tmpftp=%temp%\tmp_ftp%Random%.tempmd d:\temp >nul:up::建立測試文件 文件名自增1echo %date% %time% >d:\temp\a%num%.txt::生成ftp上傳 %1 是要上傳的文件路徑call :login d:\temp\a%num%.txt::開始上傳並生成,日誌 ,當前目錄 ftpt.log 為日誌文件ftp -s:%tmpftp% >>ftpt.logecho ----------%time%--------->>ftpt.log::刪除臨時文件del /q/f %tmpftp%set /a num+=1echo 上傳 a%num%.txt::延時ping /n 10 127.1 >nulgoto up ::生成ftp上傳文件:login(echo open %ftpadd%echo %user%echo %pw%echo pwdecho put %1echo bye)>>%tmpftp%goto :eof
這是我模擬的代碼,你可以改下。
⑦ 想做一個批處理 將指定文件用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上傳完的文件如何改名。有知道的大神告訴一下別太難
⑧ 如何寫一個bat批處理自動上傳文件到FTP
@EchoOff
Echoopen10.80.138.16>ftp.up
EchoFTP_Admin>>ftp.up
EchoPassword11>>ftp.up
EchoCd.User>>ftp.up
Echobinary>>ftp.up
Echoput"D:UserListUser.csv">>ftp.up
Echobye>>ftp.up
FTP-s:ftp.up
delftp.up/q
Pause
直接寫好了.請測試.
以上代碼經測試可用.