Shell命令不生成输出文件

时间:2015-05-12 00:19:51

标签: excel vba excel-vba

我的宏中有以下代码行:

Shell("importFile.bat"), vbHide

这是我在importFile.bat中的内容:

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

出于某种原因,每当我运行宏时,都会生成log.txt文件,但该文件为空。但是当我手动尝试运行批处理文件时,我会看到FTP命令的输出。

我做错了吗?

1 个答案:

答案 0 :(得分: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

End Sub