2013-03-28 49 views
0

我想從我的訪問代碼執行批處理文件。我使用以下代碼:從訪問批處理執行

Open vPath & "\FtpComm.txt" For Output As fNum 
Connexion (fNum) 'function printing connexion info 
Print #fNum, "put " & vFile & " Temp.mdb" 'vFile = filename + full path 
Deconnexion (fNum) 'function printing deconnexion info 
Close fNum 
Open vPath & "\doFtp.bat" For Output As batFileHandle 'vPath = full path 
Print #batFileHandle, "ftps -a -s:" & vPath & "\FtpComm.txt >" & vPath & "\output.txt"  
Close batFileHandle 
RetVal = ExecCmd(vPath & "\doFtp.bat") 

Public Function ExecCmd(cmdstr As String) As Long 
Dim wsh As Object 
Set wsh = CreateObject("Wscript.Shell") 
ExecCmd = wsh.Run(cmdstr, 0, True) 
End Function 

批處理文件未執行,但創建了一個空的output.txt文件。 我使用了完全相同的代碼,而不是ftps.exe,它的工作沒有問題。 批處理文件是正確創建,當我手動執行它工作正常。 我不明白MOVEit Free(ftps.exe)的文檔中發生了什麼變化,他們說你只需要將ftp改成ftps,其他方面都是一樣的。

任何人都可以幫助我嗎?這非常緊急!

+0

FTPS.EXE在你的PATH中? FTP.EXE是一個標準的可執行文件,因此應該可以工作,但是FTPS.EXE需要位於PATH目錄或者INVOKING進程的當前目錄中。 – Magoo

+0

是的,我把它放在PATH中,它工作。如果我在cmd中執行ftps,它會開始正確運行 – user2173690

+0

好 - 我剛剛輸入了一個答案 - 如果你願意接受它,我們都完成了! – Magoo

回答

0

在您的路徑中放置FTPS.EXE應解決問題。