我已经检查了很多不同的地方来解决这个问题,它看起来很基本,但是当我尝试它时,它不喜欢我。
我是一个编写 vbscript,它执行 psftp.exe,登录到远程 SFTP 站点,并获取属性文件中引用的文件。
目标是将输出重定向到本地日志文件。这是vbs:
Public Sub execute(sftp)
if sftp.privateKey <> "" Then
cmd = ".\psftp.exe " _
& " -l " & sftp.user _
& " -P " & sftp.port _
& " -i " & sftp.privateKey _
& " " & sftp.name _
& " -bc " & propFileName _
& " -v -bc >> D:\SFTP_Jobs\logFile.txt"
msgBox "Executing: " & ".\psftp.exe " _
& " -l " & sftp.user _
& " -P " & sftp.port _
& " -i " & sftp.privateKey _
& " " & sftp.name _
& " -bc " & propFileName _
& " -v -bc >> D:\SFTP_Jobs\logFile.txt"
Else
cmd = ".\psftp.exe " _
& sftp.name _
& " -pw " & pw _
& " -b " & PropFileName _
& " -v -bc >> D:\SFTP_Jobs\logFile.txt"
msgBox "Executing: " & ".\psftp.exe " _
& sftp.name _
& " -pw XXXXXXXX" _
& " -b " & PropFileName _
& " -v -bc >> D:\SFTP_Jobs\logFile.txt"
End If
Dim TheShell: Set TheShell = WScript.CreateObject("WScript.Shell")
TheShell.Run(cmd),0 , True
set TheShell = Nothing
End Sub 'execute
这个 cmd 最终看起来像
psftp.exe theBankIworkFor@ftp.oneOfOurVendors.com -pw thePw -b batchfile.properties -v -bc > D:\SFTP_Jobs\logFile.txt"
这个命令一直工作得很好,直到我在 -v 选项之后添加了所有内容......
如果这有什么非常明显的,我提前道歉