2016-10-25 5 views
1

로컬 파일을 SFTP 사이트에 업로드하는 WinSCP 스크립트를 작성했습니다. 이 스크립트는이 .txt로 저장됩니다Excel VBA를 사용하여 WinSCP 스크립트를 실행하는 방법?

WinSCP.com 
open sftp://username:[email protected] 
cd /export/home/Desktop/Temp 
put C:\Users\Dekstop\JPMC\a.xlsx 
close 
exit 

가 그럼 난 this post을보고 엑셀 VBA로이 코드를 작성 :

Sub RunWinScp() 
Call Shell("C:\Program Files (x86)\WinSCP\WinSCP.com /ini=nul/script=C:\Users\Desktop\WinSCPGetNew.txt") 
End Sub 

을하지만 그것을 실행하려고하면, 아무 일도 일어나지 않습니다. 오류는 없지만 파일은 올바르게 전송되지 않습니다. 누군가 제발 도와 줄 수 있니?

고맙습니다. 이 공백을 포함로

+0

당신은 아마 명령 줄 매개 변수 사이의 공간이 필요'/ini = nul/script ='. – Comintern

+0

조언 해 주셔서 감사합니다. 공간을 두려고했지만 여전히 작동하지 않습니다. 다른 생각? – vivi11130704

+0

'C : \ Users \ Desktop \ JPMC \ a.xlsx'가 올바른 경로입니까? 'C : \ Users \ JPMC \ Desktop \ a.xlsx' (JPMC가 사용자 이름이라고 가정)이되어야합니다. – ThunderFrame

답변

1
  • 당신은
  • 당신은 winscp.com를 제거 /ini=nul/script=...
Call Shell("""C:\Program Files (x86)\WinSCP\WinSCP.com"" /ini=nul /script=C:\Users\Desktop\WinSCPGetNew.txt") 
  • 사이의 공간이 필요 따옴표로 winscp.com의 경로를 묶어야합니다 WinSCPGetNew.txt 스크립트 시작 부분. WinSCP에는 winscp.com 명령이 없습니다. 이미 WinSCP.com을 VBA에서 Shell 함수로 실행했습니다. 이것은 실제로 자신이 링크 한 질문 인 Using VBA to run WinSCP script에서 이미 다룹니다. 당신은 더 나은 별도의 명령에 대한에 대한 필요성을 피하기 위해 /command switch를 사용 WinSCP에 명령 줄에서 명령을 지정하지만

파일 :

Call Shell(_ 
    """C:\Program Files (x86)\WinSCP\WinSCP.com"" " + _ 
    "/ini=nul " + _ 
    "/command " + _ 
    """open sftp://username:[email protected]/"" " + _ 
    """cd /export/home/Desktop/Temp"" " + _ 
    """put C:\users\Desktop\JPMC\a.xlsx"" " + _ 
    """close"" " + _ 
    """exit""") 
+0

의견에 감사드립니다. 내가 추천 한 총알 2와 3을 바꿨어. 글 머리 기호 1에 대해서는 다음을 작성하여 모든 것을 큰 따옴표로 묶으려고했습니다. Call Shell ("" "C : \ Program Files (x86) \ WinSCP \ WinSCP.com/ini = nul/script = C : \ Users \ Desktop \ WinSCPGetNew.txt "" "")하지만 VBA는이 행을 빨간색으로 강조 표시했습니다. 이견있는 사람? – vivi11130704

+0

거기에 따옴표가 너무 많습니다. 그리고 어쨌든 구문이 잘못되었습니다. 따옴표는 경로 주위에 있어야합니다! 내가 답변에 게시 한 코드를 사용하십시오. –

+0

도와 주셔서 감사합니다. 나는 txt 파일에서 winscp.com을 삭제하고, 공간을 추가하고, 코드를 모두 복사했지만, 여전히 그들 중 누구도 작업을 끝내지 못했습니다 ... 오류 메시지는 출력되지 않지만 출력이 없습니다. IM에 가깝기 때문에 대답에 가깝지만, 그것을 얻지 마라. – vivi11130704

관련 문제