Board logo

標題: [發問] 二台電腦之間檔案複製有時不行呢? [打印本頁]

作者: dechiuan999    時間: 2014-8-21 16:39     標題: 二台電腦之間檔案複製有時不行呢?

本帖最後由 dechiuan999 於 2014-8-21 16:41 編輯

各位大大好:
[attach]18991[/attach]
小弟想利用net指令來
作者: dechiuan999    時間: 2014-8-21 18:25

本帖最後由 dechiuan999 於 2014-8-21 18:31 編輯

[attach]18992[/attach]
  1. Sub mXcopy()   
  2.     Dim Wsh As IWshRuntimeLibrary.WshShell  '此宣告是否有誤呢?
  3.     Dim sourceFile As String
  4.     Dim destinationFile As String
  5.     Dim fs As Scripting.FileSystemObject    '此宣告是否有誤呢?
  6.     Dim cmdStr
  7.     Dim retVal
  8.     Set Wsh = CreateObject("WScript.Shell")
  9.         Wsh.Run "cmd /c net use O: \\multibay\SCAN"        
  10.         
  11.         sourceFile = "O:\" & mTb.Text & ".PDF"
  12.         destinationFile = "D:\TEMP\."
  13.         Set fs = CreateObject("scripting.filesystemobject")
  14.         If fs.FileExists(sourceFile) Then
  15.             cmdStr = "cmd /c copy " & sourceFile & " " & destinationFile
  16.             retVal = Shell(cmdStr, 0)
  17.         Else
  18.             MsgBox "輸入的中文標籤檔案名稱不存在" & vbCrLf & "請重新輸入指定的中文標籤"
  19.         End If
  20.         
  21.         Wsh.Run "cmd /c net use O: /delete"
  22.         
  23.         Set fs = Nothing
  24.         Set Wsh = Nothing
  25.       
  26. End Sub
複製代碼
回復 1# dechiuan999

補充說明 如附檔
作者: luhpro    時間: 2014-8-23 10:21

回復 2# dechiuan999
1. 定義在 Sub 區塊內的變數只能在該區塊內使用, (其他的 Sub 內看不到該變數)
若每個 Sub 都需要用到(或是需要在 Sub 間傳遞)的變數,
請在 Module 內的 Option Explicit 上方,
使用 Public 取代 Dim 定義全域變數.
如:
Public Wsh As Object. fs As Object
Option Explicit
Sub nn()
...
End Sub

2.
    Dim Wsh As Object
...
    Dim fs As Object
改定義成 Object 試試.
作者: dechiuan999    時間: 2014-8-24 09:12

回復 3# luhpro


    謝謝大大的提示
小弟明日回公司後再試試

感恩大大!
作者: dechiuan999    時間: 2014-8-25 15:28

回復 3# luhpro


    謝謝大大。
小弟今日在公司
依大大的方式,其
結果還是相同。
現小弟改用下列方式
運作
  1. '設定引用項目 Windows Script Host Object Model
  2.    
  3.     Dim myWsh As IWshRuntimeLibrary.WshShell
  4.     Dim myStr As String
  5.     Dim myFso     As Scripting.FileSystemObject
  6.     Dim myName    As String
  7.     Dim myNewPath As String
  8.    
  9.    
  10.     Set myWsh = CreateObject("Wscript.Shell")
  11.     myStr = "\\multibay\scan"               '指定資料夾
  12.     'Debug.Print CurDir
  13.     myWsh.CurrentDirectory = myStr
  14.     'Debug.Print CurDir
  15.    
  16.     Set myFso = New Scripting.FileSystemObject
  17.     myName = "\\multibay\scan\T-1.PDF"      '複製來源檔案
  18.     myNewPath = "D:\TEMP\"        '指定複製目標
  19.     myFso.CopyFile myName, myNewPath, OverWriteFiles:=True
  20.     '不能使用Mask字元
  21.     'myFso.GetFile(myName).Copy myNewPath, OverWriteFiles:=True
  22.     Set myFso = Nothing                            '物件的釋放
  23.     Set myWsh = Nothing                            '物件的釋放
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)