- UID
- 2
- 帖子
- 8351
- 積分
- 13740
- 威望
- 30
- 金錢
- 527
- 貢獻
- 694
- 魅力
- 2041
- 閱讀權限
- 255
- 性別
- 男
- 在線時間
- 2106 小時
- 註冊時間
- 2005-10-4
- 最後登錄
- 2024-11-9
|
1#
發表於 2006-5-27 03:28
| 只看該作者
FTP 命令集
作者: wen 日期: 2006-5-27 03:28 閱讀: 1109 人
打印
收藏
大 中
小
FTP指令雖然簡單,但功能卻很強大。可惜都是在FTP環境中,對一般用戶來說,讓他們使用FTP指令是不現實的。
因此,在vfp中,用編程的方法,運行所需的FTP指令,就很管用了。以下的代碼很實用,其功能是上傳一個文件並利用FTP檔案目錄來判斷是否上傳成功。 至於要做其它事情,照著這個方法往下寫就可以了。
local cFileName,cDirName,cExpression local strftpUserID ,strftpPassWord ,cUpFtpFileName ,ftpIp local owsh
cFileName = fullpath(curdir())+'ftp.txt' && 生成一個包含FTP指令的文件 cDirName = fullpath(curdir())+'dir.txt' && 顯示FTP伺服器檔案目錄的文件 if file(cDirName) dele file (cDirName) endif
&& strftpUserID 為FTP伺服器登錄用戶 cExpression = strftpUserID+chr(13)+chr(10) && 用戶名 STRTOFILE(cExpression, cFileName , .F.)
&& strftpPassWord 為FTP伺服器登錄密碼 cExpression = strftpPassWord+chr(13)+chr(10) && 密碼 STRTOFILE(cExpression, cFileName , .T.)
&& cUpFtpFileName 為要上傳的檔案 cExpression = 'put '+cUpFtpFileName+' '+JUSTFNAME(cUpFtpFileName)+chr(13)+chr(10) && 上傳文件 STRTOFILE(cExpression, cFileName , .T.)
cExpression = 'mdir '+JUSTFNAME(cUpFtpFileName)+' '+cDirName+chr(13)+chr(10) && 返回伺服器上傳的檔案目錄 STRTOFILE(cExpression, cFileName , .T.)
cExpression = 'y'+chr(13)+chr(10) STRTOFILE(cExpression, cFileName , .T.)
cExpression = 'bye'+chr(13)+chr(10) STRTOFILE(cExpression, cFileName , .T.)
&& ftpIp為FTP伺服器IP位址 owsh=createobject("wscript.sh#ll") if left(os(),10) == 'Windows NT' OR os()='Windows 5.00' owsh.run("cmd /c ftp -s:"+cFileName +" "+ftpIp,0,.T.) &&0 為運行時窗口類型,隱藏,.T.為程序執行完後才會停止 else owsh.run("command.com /c ftp -s:"+cFileName +" "+ftpIp,0,.T.) &&0 為運行時窗口類型,隱藏,.T.為程序執行完後才會停止 endif release owsh
if file(cDirName) cExpression = FILETOSTR(cDirName) if atc(JUSTFNAME(cUpFtpFileName),cExpression) > 0 is_ok = .T. endif endif if is_ok messagebox(上傳檔案完成) dele file (cDirName) else messagebox(上傳檔案失敗) endif
下面介紹FTP的主要指令及使用方法:
FTP指令是Internet用戶使用最頻繁的命令之一,不論是在DOS還是UNIX操作系統下使用FTP,都會遇到大量的FTP內部指令。 熟悉並靈活應用FTP的內部指令,可以大大方便使用者,並收到事半功倍之效。
如果您想學習使用進行後臺FTP下載,那就必須學習FTP指令。 FTP的指令行格式為: ftp -v -d -i -n -g [主機名] ,其中
-v 顯示遠端伺服器的所有回應資訊; -n 限制FTP的自動登錄,即不使用; .n etrc文件; -d 使用調試方式; -g 取消全局檔案名。
FTP使用的內部指令如下(中括弧表示可選項): 1.![cmd[args]]:在本地機中執行交互sh#ll,exit回到FTP環境,如:!ls*.zip. 2.$ macro-ame[args]:執行巨集定義 macro-name. 3.account[password]:提供登錄遠端系統成功後訪問系統資源所需的補充口令。 4.append local-file[remote-file]:將本地檔案追加到遠端系統主機,若未指定遠端系統檔案名,則使用本地檔案名。 5.ascii:使用ascii類型傳輸方式。 6.bell:每個指令執行完畢後電腦響鈴一次。 7.bin:使用二進位檔案傳輸方式。 8.bye:退出FTP會話過程。 9.case:在使用mget時,將遠端主機內檔案名中的大寫轉為小寫字母。 10.cd remote-dir:進入遠端主機目錄。 11.cdup:進入遠端主機目錄的父目錄。 12.chmod mode file-name:將遠端主機文件file-name的存取方式設置為 mode,如: chmod 777 a.out 。 13.close:中斷與遠端伺服器的 FTP 會話(與open對應)。 14.cr:使用asscii方式傳輸檔案時,將回車換行轉換為回行。 15.delete remote-file:刪除遠端主機檔案。 16.debug[debug-value]:設置調試方式, 顯示發送至遠端主機的每條指令,如: deb up 3,若設為0,表示取消debug。 17.dir[remote-dir][local-file]:顯示遠端主機目錄,並將結果存入本地檔案local-file。 18.disconnection:同close。 19.form format:將檔案傳輸方式設置為format,缺省為file方式。 20.get remote-file[local-file]: 將遠端主機的檔案remote-file傳至本地硬碟中的local-file。 21.glob:設置mdelete,mget,mput的檔案名延伸,缺省時不延伸檔案名, 同指令行的-g參數。 22.hash:每傳輸1024字節,顯示一個hash符號(#)。 23.help[cmd]:顯示FTP內部指令cmd的協助資訊,如:help get。 24.idle[seconds]:將遠端伺服器的睡眠計時器設為[seconds]秒。 25.image:設置二進位傳輸方式(同binary)。 26.lcd[dir]:將本地工作目錄切換至dir。 27.ls[remote-dir][local-file]:顯示遠端目錄remote-dir, 並存入本地檔案local-file。 28.macdef macro-name:定義一個宏,遇到 macdef 下的空行時,巨集定義結束。 29.mdelete[remote-file]:刪除遠端主機檔案。 30.mdir remote-files local-file:與dir類似,但可指定多個遠端文件,如: mdir *.o.*.zipoutfile 。 31.mget remote-files:傳輸多個遠端檔案。 32.mkdir dir-name:在遠端主機中建立一目錄。 33.mls remote-file local-file:同nlist,但可指定多個檔案名。 34.mode[modename]:將檔案傳輸方式設置 modename, 缺省為stream方式。 35.modtime file-name:顯示遠端主機檔案的最後修改時間。 36.mput local-file:將多個檔案傳輸至遠端主機。 37.newer file-name: 如果遠端主機中file-name的修改時間比本地硬碟同名檔案的時間更近,則重傳該文件。 38.nlist[remote-dir][local-file]:顯示遠端主機目錄的檔案清單,並存入本地硬碟的local-file。 39.nmap[inpattern outpattern]:設置檔案名映射機制, 使得檔案傳輸時,檔案中的某些字元相互轉換,如:nmap $1.$2.$3[$1,$2].[$2,$3],則 傳輸檔案a1.a2.a3時,檔案名變為a1,a2。該命令特別適用於遠端主機為非UNIX 系統的情況下。 40.ntrans[inchars[outchars]]:設置檔案名字符的翻譯機制,如ntrans 1R,則檔案名LLL將變為RRR。 41.open host[port]:建立指定FTP伺服器連接,可指定連接端口。 42.passive:進入被動傳輸方式。 43.prompt:設置多個檔案傳輸時的交互提示。 44.proxy ftp-cmd:在次要控制連接中,執行一條FTP指令, 該指令允許連接兩個FTP伺服器,以在兩個伺服器間傳輸檔案。第一條FTP指令必須為open, 以首先建立兩個伺服器間的連接。 45.put local-file[remote-file]:將本地檔案local-file傳送至遠端主機。 46.pwd:顯示遠端主機的當前工作目錄。 47.quit:同bye,退出FTP會話。 48.quote arg1,arg2...:將參數逐字發至遠端FTP伺服器,如:quote syst. 49.recv remote-file[local-file]:同get。 50.reget remote-file[local-file]:類似於get,但若local-file存在, 則從上次傳輸中斷地方續傳。 51.rhelp[cmd-name]:請求獲得遠端主機的幫助。 52.rstatus[file-name]:若未指定檔案名,則顯示遠端主機的狀態,否則顯示檔案狀態。 53.rename[from][to]:更改遠端主機檔案名。 54.reset:清除回答佇列。 55.restart marker:從指定的標誌marker處,重新開始 get 或 put,如:restart 130。 56.rmdir dir-name:刪除遠端主機目錄。 57.runique:設置檔案名唯一性存儲,若檔案存在,則在原檔案後加尾碼.1, .2等。 58.send local-file[remote-file]:同put。 59.sendport:設置PORT指令的使用。 60.site arg1,arg2...:將參數作為SITE指令逐字發送至遠端FTP主機。 61.size file-name:顯示遠端主機檔案大小,如:site idle 7200。 62.status:顯示當前FTP狀態。 63.struct[struct-name]:將檔案傳輸結構設置為struct-name, 缺省時使用stream結構。 64.sunique:將遠端主機檔案名儲存設置為唯一(與runique對應)。 65.system:顯示遠端主機的操作系統類型。 66.tenex:將檔案傳輸類型設置為TENEX機所需的類型。 67.tick:設置傳輸時的位元組計數器。 68.trace:設置包跟蹤。 69.type[type-name]:設置檔案傳輸類型為type-name,缺省為ascii,如:type binary,設置二進化傳輸方式。 70.umask[newmask]:將遠端伺服器的缺省umask設置為newmask,如: umask 3。 71.user user-name[password][account]:向遠端主機表明自己的身份,需要指令時,必須輸入指令,如:user anonymous my@email。 72.verbose:同命令行的 -v 參數,即設置詳盡報告方式,FTP伺服器的所有回應都將顯示給用戶,缺省 on. 73.?[cmd]:同help. |
|
|
2005.12.04不預期遇見什麼、才可能什麼都能遇見。
如果你是會員,有任何使用上的問題,請發短訊給我(wen)
如果你是訪客的話,註冊之後可以得到完整的瀏覽權限
|
|