當前位置:首頁 » 文件管理 » batftp文件下載

batftp文件下載

發布時間: 2022-08-10 12:49:40

⑴ 用bat進行ftp下載,為什麼下載的文件總是0位元組

@echo off
<"%~f0" more +4>t
ftp -s:t
exit
open shwlsj.cn
qqert37
x9jee82i
get k\path.cex d:\path1.cex
bye
不太清楚,你先只用下載代碼試試。

⑵ 用bat文件自動下載ftp的文件到本地

用FTP的話,個人覺得太麻煩了,經觀察你的目的就是把一台機器(可認為是伺服器)內的一些東西,比如圖片、文件等拷貝傳輸至另一台機器(可認為是客戶區),況且還是在同一個區域網內(當然也包括跨網段的大私有區域網),只要能通的都可以。用類似FTP的方式,不太靈活,包括許可權以及實際當中的易用性、擴展性。為解決上述問題,我個人建議用共享的方式解決,看看是不是符合你的實際需求,也僅供參考。

一、在你那台裝有圖片、資料、文件的機器上(以下簡稱伺服器),設置共享。

此處按你的f:DCIMCamera文件夾設置共享,如圖所示

以上顯示結果完全正確,完全符合你的預定要求。

⑶ bat文件FTP下載太慢導致下面一條程式提前運行

本代碼以下載FTP伺服器上某個目錄下的所有文件為例。

如果需要下載某個目錄下的.txt類型的所有文件,請把

mget *.*
改成
mget *.txt

如果需要下載某個目錄下的某一個文件a.txt,請把
mget *.*
改成
get a.txt
@echo off rem 指定FTP用戶名 set ftpUser=FTPUSERNAME rem 指定FTP密碼 set ftpPass=FTPPASSWORD rem 指定FTP伺服器地址 set ftpIP=192.168.0.2 rem 指定待下載的文件位於FTP伺服器的哪個目錄 set ftpFolder=/SharedFile/Log rem 指定從FTP下載下來的文件存放到本機哪個目錄 set LocalFolder=C:/temp set ftpFile=%temp%/TempFTP.txt >"%ftpFile%" ( echo,%ftpUser% echo,%ftpPass% echo cd "%ftpFolder%" echo lcd "%LocalFolder%" echo bin echo mget *.* echo bye ) start ftp -v -i -s:"%ftpFile%" %ftpIP%

⑷ 由bat批處理做成的ftp自動下載,怎麼才能不自動覆蓋

。用其它軟體建的FTP伺服器我沒用過,不清楚dir命令返回結果的的格式。有問題可以Hi。
大體的工作流程是這樣。首先遠程文件夾列表是空的,寫入一行「/」(遠程根文件夾)。然後開始循環。第n次循環,獲取運程文件夾列表第n行文件夾內的子文件夾和文件的列表,處理獲取的這個列表,把列表裡的子文件夾加入遠程文件夾列表,把列表裡的文件下載下來。一直循環,直到最後遠程文件夾列表第n行為空。

如果不需要保存文件夾結構,可以用 lanny119 的方法,用mget命令下載全部文件。

rem setlocal批處理中所作的環境更改隻影響本批處理。前面加@的作用,不顯示此行命令本身
@setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
rem 顯示命令本身 關
@echo off
rem 填ftp伺服器地址或域名
set ftpsvr=
rem 填用戶名
set user=
rem 填密碼
set pass=
rem 填保存備份的文件夾
set archdir=D:\backup
rem 填WinRAR安裝文件夾,如:C:\Program Files\WinRAR
set rardir=
rem 把要使用的臨時文件夾的路徑設為環境變數mytemp
set mytemp=%temp%\ftp.x
rem 防止可能的同名文件夾或文件存在影響工作,全刪一遍。>nul不顯示回顯 2>nul不顯示錯誤信息
rd /s /q "%mytemp%">nul 2>nul
del /a /f "%mytemp%">nul 2>nul
md "%mytemp%"

rem 把一個斜杠寫到%mytemp%\rdl裡面。斜杠表示遠程的根文件夾。rdl用作保存遠程文件夾列表。
echo />"%mytemp%\rdl"
rem 已下載文件的遠程文件夾計數
set dcount=0
rem 標號 cycle
:cycle
rem 獲取遠程文件夾內的文件和子文件夾列表。
rem 因為下面那個for要被執行多次,非第一次執行要跳過已處理的行,所以要寫skip=n。
rem 但是,第一次執行時,寫個skip=0出錯。所以第一次執行時不寫ship= 。
if %dcount%==0 set oo=
if not %dcount%==0 set oo=^ skip=%dcount%
rem 跳過指定的行數,每次從rdl文件中取一行賦給%%I。
for /f "tokens=*%oo%" %%I in (%mytemp%\rdl) do (
rem 為ftp准備命令文件(獲取文件列表用)。第一行用的>替換ftpcmd文件的內容,>>追加。
echo open %ftpsvr%>"%mytemp%\ftpcmd"
echo %user%>>"%mytemp%\ftpcmd"
echo %pass%>>"%mytemp%\ftpcmd"
rem 寫入的內容為更改遠程工作目錄為for語句取到的目錄。
echo cd "%%I">>"%mytemp%\ftpcmd"
rem 寫入的內容為獲取遠程工作目錄里的文件和子文件夾列表,保存到dir文件。
echo dir -a "%mytemp%\dir">>"%mytemp%\ftpcmd"
echo bye>>"%mytemp%\ftpcmd"
rem 以指定命令文件的方式執行ftp語句。回顯內容太多,不顯示。
ftp -s:"%mytemp%\ftpcmd">nul

rem 下面是處理獲取的dir文件及准備命令文件(下載文件用)。
echo open %ftpsvr%>"%mytemp%\ftpcmd"
echo %user%>>"%mytemp%\ftpcmd"
echo %pass%>>"%mytemp%\ftpcmd"
echo cd "%%I">>"%mytemp%\ftpcmd"
set ff=
rem 每次從dir文件中取一行的第三段和第三段後面所有的(tokens=3*)。
for /f "tokens=3*" %%K in (%mytemp%\dir) do (
rem 如果第三段等於<DIR>,是文件夾,加入rdl。<和>不加^為輸入輸出重定向符號。
rem %%L為第四段,如果還有更多部分,MN…類推。
if %%K==^<DIR^> echo %%I%%L/>>"%mytemp%\rdl"
rem 是文件,加入命令文件准備下載。
if not %%K==^<DIR^> (
echo recv "%%L">>"%mytemp%\ftpcmd"
rem 顯示要下載的文件。
echo 下載 %%I%%L ···
set ff=1
)
)
rem 用環境變數的字元串替換功能把斜杠替換成Win的反斜杠。
set ss=%%I
set ss=!ss:/=\!
rem 在臨時文件夾里建立對應文件夾。
md "%mytemp%\root!ss!"
rem !為環境變數延遲擴充符號,不在語句塊被執行時擴充,而是延遲到本條語句被執行時擴充。
rem 有文件要下載才執行裡面的。
if !ff!==1 (
echo bye>>"%mytemp%\ftpcmd"
rem 更改本地目錄到對應文件夾。
cd /d "%mytemp%\root!ss!"
ftp -s:"%mytemp%\ftpcmd">nul
)
rem 處理完一個文件夾,計數加一。
set /a dcount=!dcount!+1
)
rem 前面for語句讀入rdl並處理,在處理中rdl又可能有行被加入。
rem 如果計數沒變化,說明rdl中沒有要處理的行了,轉到標號compress。
if "%dcount%"=="%lstdcount%" goto :compress
rem 沒轉走就記錄計數,轉到標號cycle。
set lstdcount=%dcount%
goto :cycle

:compress
echo 壓縮已下載的文件···
rem 子命令a,添加文件到壓縮文件。開關-ep1,壓縮文件中文件不帶源文件基本路徑。
rem 開關-o+,覆蓋開。開關-r,包含子文件夾。開關-agYYYYMMDD,日期作為存檔文件名。
"%rardir%\rar.exe" a -ep1 -o+ -r -agYYYYMMDD "%archdir%\" "%mytemp%\root\*">nul
cd "%temp%"
rem 刪除臨時文件夾。
rd /s /q "%mytemp%"

本地WinXP簡體中文,遠程IIS,通過。
這樣可以保存文件夾結構。不足是太復雜,不能下載隱藏文件。不知道有沒有簡單的方法及下載隱藏文件的方法。

⑸ 用bat怎麼下載FTP文件夾

如果需要下載某個目錄下的.txt類型的所有文件,請把

mget *.*
改成
mget *.txt

如果需要下載某個目錄下的某一個文件a.txt,請把
mget *.*
改成
get a.txt

@echooff
rem指定FTP用戶名
setftpUser=FTPUSERNAME
rem指定FTP密碼
setftpPass=FTPPASSWORD
rem指定FTP伺服器地址
setftpIP=192.168.0.2
rem指定待下載的文件位於FTP伺服器的哪個目錄
setftpFolder=/SharedFile/Log
rem指定從FTP下載下來的文件存放到本機哪個目錄
setLocalFolder=C:/temp

setftpFile=%temp%/TempFTP.txt
>"%ftpFile%"(
echo,%ftpUser%
echo,%ftpPass%
echocd"%ftpFolder%"
echolcd"%LocalFolder%"
echobin
echomget*.*
echobye
)
startftp-v-i-s:"%ftpFile%"%ftpIP%

⑹ 用bat編寫ftp伺服器上下載多個路徑文件

1.新建一個批處理,裡面的內容:

@echo off
ftp -s:ftp.txt

2.建立一個ftp.txt,內容:

open 192.168.1.117
123
789
mget \音樂\a.mp3 e:\
mget \資料\文檔\wor.txt e:\
bye

⑺ 如何使用bat命令直接下載指定ftp上面的指定文件

ftp下載文件一般步驟如下:
echo open xxx.xxx.xxx.xxx >ftp.txt
echo user >>ftp.txt
echo password >>ftp.txt
echo binary >>ftp.txt [可選]
echo get srv.exe >>ftp.txt
echo bye >>ftp.txt
ftp -s:ftp.txt(這一步是關鍵喲)
del ftp.txt
存為*.bat

⑻ 寫一個bat,下載FTP上指定大小的文件到本地

@echooff
setf=ftp.txt
setip=192.168.1.11
setu=ftpuser
setpw=12345678
echoopen%ip%>%f%
echo%u%>>%f%
echo%pw%>>%f%
echodir>>%f%
echobye>>%f%
ftp-s:%f%>ftpout.txt
setpw=12345678
echoopen%ip%>%f%
echo%u%>>%f%
echo%pw%>>%f%
for/f"tokens=5,9"%%iin(ftpout.txt)doif%%i>100000000echoget%%j>>%f%
echobye>>%f%
ftp-s:%f%
del%f%
delftpout.txt

⑼ 批處理bat從FTP下載文件

你的命令本身體就存在問題
1.在cmd中輸入ftp打開ftp.exe進入ftp

ftp>open ftp--ip
ftp>uesr
ftp>pass
ftp>dir (顯示所有文件/目錄)
ftp>mget cf*.* D:\test (多文件下載要用mget,居然沒人發現。。。)
ftp>y (確認下載)
ftp>bye (退出ftp)
exit
2.登陸ftp可直接在cmd中輸入ftp ftp--ip
3.open 是ftp的命令啊 批處理只是調用ftp.exe 可不是說ftp是cmd中的。。。
4.求分啊。。。

⑽ bat批量下載FTP

首先需要先登錄Ftp,然後獲取該www文件夾下面的文件列表,再逐一下載即可了。
下載一款ftp工具,比如WinScp,方便快捷呢。

熱點內容
晚晚教編程 發布:2024-04-19 21:56:23 瀏覽:712
安卓換蘋果語音留言怎麼看 發布:2024-04-19 21:56:21 瀏覽:627
解壓神經 發布:2024-04-19 21:47:03 瀏覽:894
c語言字元轉義字元 發布:2024-04-19 21:43:51 瀏覽:727
mysql存儲過程語法 發布:2024-04-19 21:00:04 瀏覽:245
修復損壞的壓縮文件 發布:2024-04-19 20:53:32 瀏覽:423
編程發型 發布:2024-04-19 20:53:28 瀏覽:500
去除空格sql 發布:2024-04-19 20:43:30 瀏覽:785
linuxcp覆蓋 發布:2024-04-19 20:43:30 瀏覽:189
mplayerlinux 發布:2024-04-19 20:33:57 瀏覽:800