2015-05-12 532 views
0

我有下面的代碼行中我的宏:Shell命令不產生輸出文件

Shell("importFile.bat"), vbHide 

下面是我在importFile.bat:

ftp -n -i -g -s:import.ftp > C:\log.txt 

出於某種原因,每當我跑宏,log.txt文件生成但文件爲空。但是當我手動嘗試運行批處理文件時,我看到了FTP命令的輸出。

我做錯了什麼?

+0

你能充實import.ftp並直接在shell中運行呢? – Jeeped

+0

我試過,但現在是沒有得到根本(殼牌 「FTP -n -i -g -s:import.ftp> C:\ TEMP \ log.txt的」,vbHide)產生的log.txt文件 – whyyyy

+1

指定完整路徑到文件。我每天說這個50次。 –

回答

0

嘗試如下..我可以看到與FTP數據out.txt,我覺得ftp命令是不是在Excel宏能夠獲取import.ftp文件路徑..嘗試給出完整路徑。你可以嘗試下面的代碼。

Sub ftp_button() 

batfile = FreeFile 

ftpbat = ThisWorkbook.Path & "\test.bat" 
ftpout = ThisWorkbook.Path & "\out.txt" 
ftpcmd = ThisWorkbook.Path & "\import.ftp" 'Existing ftp file - file contains one stmt "open 127.0.0.1" 

If Dir(ftpbat) <> "" Then Kill (ftpbat) 
If Dir(ftpout) <> "" Then Kill (ftpout) 

Open ftpbat For Output As #batfile 
Print #batfile, "ftp -n -i -s:" & ftpcmd; " > " & ftpout 
Close #batfile 

Shell (ftpbat), vbHide 

末次