VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

XCOPY過程小問題

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
sthuang66



註冊時間: 2014-04-27
文章: 166


第 1 樓

發表發表於: 星期一 十二月 04, 2017 6:13 pm    文章主題: XCOPY過程小問題 引言回覆

我自己寫了一個備份程式來備份照片資料夾!爬文發現不能單純用copy指令
我的介面是用Combo選擇磁碟機和目錄位置
確定的command 中Click 指令如下
SET SAFETY OFF
LOCAL MYDRI
PUBLIC DIRE
MYDRI=ALLTRIM(THISFORM.COMBO1.VALUE)
DIR=SUBSTR(LOWER(MYDRI),1,9)+'\image'

DBF_PATH1='&DIR'
IF NOT DIRE(DBF_PATH1)
MD (DBF_PATH1)
ENDIF

DIRE="d:\photo &DBF_PATH1"
XCOPY(DIRE)

MESSAGEBOX("BACKUP COMPLETE!",0+48,"提示資訊")
---------------------------------------------------------------------------
參考Ruey兄寫的Function

FUNCTION XCopy
PARAMETERS tcParam
LOCAL lRet

DECLARE INTEGER ShellExecute IN shell32.DLL ;
INTEGER HWND,;
STRING lpszOP, ;
STRING lpszFile, ;
STRING lpszParams, ;
STRING lpszDir, ;
INTEGER fsshowcmd

WAIT WIND "複製中..." NOWAIT
lRet=ShellExecute(0,"Open","XCOPY.EXE"," "+tcParam+" /e/i/y/h/r","",1)
WAIT CLEAR

RETURN lRet

ENDFUNC

我的問題是執行都沒有問題!呼叫XCOPY執行時因為檔案很多!cmd介面下還未拷貝完! MESSAGEBOX已經跳完成!!我想一定是我指令放錯位置!我功力粗淺望求各位高手指教
回頂端
檢視會員個人資料 發送私人訊息
RexChen



註冊時間: 2005-11-08
文章: 5
來自: Taiwan

第 2 樓

發表發表於: 星期一 十二月 04, 2017 11:32 pm    文章主題: 引言回覆

確定xcopy執行完畢後,才執行message box

Cc=xcopy(dire)
If !Empty(cc)
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
RexChen



註冊時間: 2005-11-08
文章: 5
來自: Taiwan

第 3 樓

發表發表於: 星期一 十二月 04, 2017 11:33 pm    文章主題: 引言回覆

確定xcopy執行完畢後,才執行message box

Cc=xcopy(dire)
If !Empty(cc)
Messagebox(.....)
Endif
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
sthuang66



註冊時間: 2014-04-27
文章: 166


第 4 樓

發表發表於: 星期二 十二月 05, 2017 2:06 am    文章主題: 引言回覆

to RexChen
我按照你的方法其實我寫的一樣! 都會在XCOPY命令未完成就先跳Messagebox訊息!不知道是不是我資質駑鈍沒有理解你說的
------------------
DIRE="d:\photo &DBF_PATH1"
CC=XCOPY(DIRE)
IF !EMPTY(CC)
MESSAGEBOX("BACKUP COMPLETE!",0+48,"提示資訊")
-----------------------------------------------------------------
其實我是知道任務有完成!只是有看到其他軟體是VFP寫的!他們備分就是會copy完才跳訊息!還是我這種方法是無法達成

謝謝你的幫忙
回頂端
檢視會員個人資料 發送私人訊息
perry



註冊時間: 2014-07-20
文章: 203


第 5 樓

發表發表於: 星期二 十二月 05, 2017 9:24 am    文章主題: 引言回覆

RUN or ! or winscript.shell.run or ShellExecute
基本上是執行外部程序的動作,
在VFP中只是一道指令,
完成與否和不是 VFP 所能掌控!!
回頂端
檢視會員個人資料 發送私人訊息
sthuang66



註冊時間: 2014-04-27
文章: 166


第 6 樓

發表發表於: 星期三 十二月 06, 2017 3:20 am    文章主題: 引言回覆

謝謝PERRY 兄提醒!
爬文http://vfp.sunyear.com.tw/viewtopic.php?t=454&highlight=ShellExecute 中5樓朱大的提醒! 就試著google發現在http://www.tek-tips.com/viewthread.cfm?qid=1753976中有我的答案! 所以我放棄ShellExecute FUNCTION 來作xcopy!改用WSCRIPT.SHELL就可以了

----------------------------------------------------------------------------
WSHSHELL = CREATEOBJECT("WSCRIPT.SHELL")
Y=' /D/K/E/Y/C/I/H'

F='XCOPY '+DIRE+Y

RC = WSHSHELL.RUN((F),3,.T.)

WSHSELL=NULL

MESSAGEBOX("BACKUP COMPLETE!",0+48,"提示資訊")
------------------------------------------------------------------------
上面會執行完才跳完成的提示!!!謝謝各位的幫助

or---------------------------------------------------------------------
Y=' /D/K/E/Y/C/I/H'

F='XCOPY '+DIRE+Y

RUN &F
MESSAGEBOX("BACKUP COMPLETE!",0+48,"提示資訊")
回頂端
檢視會員個人資料 發送私人訊息
amd



註冊時間: 2003-07-20
文章: 54


第 7 樓

發表發表於: 星期三 十二月 06, 2017 9:19 pm    文章主題: 引言回覆

小弟寫的,很簡單的備份!

lcmsg = "資 料 庫 備 份 中,請 稍 待!"
Wait window lcmsg noclear nowait at srow()/7,(scols()-len(lcmsg))/2
Run XCOPY 資料庫\*.* c:\x資料庫備份\ /s /e /q /y
Wait clear
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作