在 VBScript 中通过 PuTTY 更改当前目录时端口号无效

在 VBScript 中通过 PuTTY 更改当前目录时端口号无效

我在 QTP 中使用 VB 脚本通过 putty 连接到 UNIX 服务器。我需要列出当前目录中的所有文件,但当我运行以下脚本时收到“无效端口号”错误:

Set p_oWShell= CreateObject( "WScript.Shell" )
unix_cmd=" cd /home/SHOME/batch"
lscmd = " ls /home/SHOME/batch"
Set oSession = oWShell.exec( puttyLOC & " " & sHost & " -l " & sUser & " -pw " & sPasswd & unix_cmd)

或者

Set oSession = oWShell.exec( puttyLOC & " " & sHost & " -l " & sUser & " -pw " & sPasswd & lscmd )

此外,我需要将文件从本地 Windows 计算机上传到 Unix 服务器,反之亦然。

注意:我测试了以下代码,它连接到服务器没有任何问题:

Set oSession = oWShell.exec( puttyLOC & " " & sHost & " -l " & sUser & " -pw " & sPasswd)

答案1

Putty 语法不允许您在同一行上指定远程命令。

有两种可能的选择来解决该问题:

  1. 使用 plink.exe 代替 putty

P:\ath\to\plink user@host command

  1. 将命令放入文件中,然后使用 -m 开关

P:\ath\to\putty user@host -m p:\ath\to\file

要将文件从 Windows 盒子传输到 Unix,可以使用 pscp.exe 实用程序,其语法类似:

pscp "P:\ath\to\file.txt" user@host:/destination/dir/

plink.exe 和 pscp.exe 是 putty 包中附带的实用程序,我在示例中省略了密码选项。

相关内容