2017-03-16 9 views
0

Unixサーバーにログオンするためにパテのpscp.exeファイルを使用しているVBAコードがあります。私はWindows 7を使用しています。ユーザー名にVBAとパテの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]'s password:' – 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 
関連する問題