2017-03-16 59 views
0

我有一些使用Putty的pscp.exe文件登录Unix服务器的VBA代码。我正在使用Windows 7.当用户名包含@字符时,VBA和Putty的pscp.exe

问题是用户名包含@字符。如果我使用以下VBA代码,我无法登录。

那么,我该如何替换Username = "[email protected]"才能登录?

Dim Host As String 
Host = "grid1.example.xxx" 

Dim Username As String 
Username = "[email protected]" 

Dim Password As String 
Password = "Password2012" 

Dim Command As String 
Command = "pscp.exe -sftp -l " & Username & " -pw " & Password 

Shell Command, vbNormalFocus 
+0

'命令=​​ “pscp.exe -sftp -l -o用户=” &用户名和 “-pw” &Password' http://www.computerhope.com/unix/sftp.htm – cyboashu

+0

@cyboashu如果我使用该代码,我将被要求输入'[email protected]的密码:' – xms

回答

0

为我工作如下:

Dim Host 
Host = "grid1.example.xxx" 

Dim Username 
Username = "[email protected]" 

Dim Password 
Password = "Password" 

Dim Command 
Command = "pscp.exe -l " & Username & " -pw " & Password & " cmd.txt [email protected]:cmd.txt" 

Set oShell = CreateObject ("WScript.Shell") 
oShell.run "cmd /k " & Command 
+0

如果命令不成功,是否可以获取ERRORLEVEL值? – xms

+0

请参阅我发布的其他答案。 –

+0

谢谢!也许我会用那种方式。 – xms

0

对不起,不知道如何在评论部分正确的格式,所以在这里发帖。尝试在.bat文件中运行它。

但我确实认为,用户名不应该包含主机名,而是要连接到目标%Hostname%中。

@echo off 

set Username="[email protected]" 
set Password=Password 
set Hostname=hostname 

rem or maybe like this 
rem set Username=username 
rem set [email protected] 

pscp32.exe -sftp -l %Username% -pw %Password% cmd.txt %Hostname%:cmd.txt 

if errorlevel 2 goto Err2 
if errorlevel 1 goto Err1 

echo success! 
goto :EOF 

:Err2 
echo error 2 
goto :EOF 


:Err1 
echo error 1 
goto :EOF 
相关问题