2014-04-03 2 views
0

으로 리디렉션 됨 wscript를 사용하여 pscp를 통해 하나의 파일을 전송하려고하는데이 코드는 작동하지 않습니다. 오류는 발생하지 않지만 파일을 전송하거나 출력을하지 않습니다. 도움을pscp 파일 전송 오류 출력이 파일

Dim objShell 
Set objShell = WScript.CreateObject("WScript.Shell") 
objShell.Exec "C:\scripts\putty\pscp.exe -pw password C:\file_to_transfer.txt [email protected]:/directory 2>> C:\Log_file.txt" 

덕분에 ....

답변

0

당신은 쉘 기능에 대한 쉘 (예를 들어, 리디렉션)가 필요합니다. 따라서 "% comspec %/c"를 명령 앞에 추가하십시오.

.Exec은 호출 된 프로세스의 StdOut/StdErr을 읽을 수 있다는 것을 알고 있습니까?

증거 :

>> f = "c:\temp\pscp.log" 
>> c = "pscp -pw pword -ls [email protected]:/home" 
>> set s = CreateObject("WScript.Shell") 
>> WScript.Echo s.Run(c & " > " & f, 0, True) 
>> WScript.Echo s.Run("%comspec% /c " & c & " > " & f, 0, True) 
>> WScript.Echo goFS.OpenTextFile(f).ReadAll() 
>> WScript.Echo s.Exec(c).Stdout.ReadAll() 
>> 
1 <-- no shell/%comspec%, no luck 
0 <-- it did not fail 
Listing directory /home <-- .Run did work with shell 
drwxr-xr-x 5 root  root   4096 Feb 22 2011 . 
... 

Listing directory /home <-- .Exec().Stdout.ReadAll() works 
drwxr-xr-x 5 root  root   4096 Feb 22 2011 . 
... 
+0

감사,하지만 나를 위해 작동하지 않습니다. 6 행에 오류가 발생했습니다. char 1 - 필요한 goFS 객체. – user3493540

+0

@ user3493540 - '증거를 복사하여 붙여 넣을 준비가되지 않았습니다'. 어떤 개체에 .OpenTextFile 메서드가 있는지 스스로에게 물어보십시오. '% comspec %/c' 추가를 시도 했습니까? –

+0

이것은 스크립팅의 첫 번째 작업이므로 내가하는 일을 전혀 모르고 있습니다. 나는 시작을 위해 pscp를 통해 그 파일을 전송할 수 있다면 행복 할 것이다 ... – user3493540