我在 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 语法不允许您在同一行上指定远程命令。
有两种可能的选择来解决该问题:
- 使用 plink.exe 代替 putty
P:\ath\to\plink user@host command
- 将命令放入文件中,然后使用 -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 包中附带的实用程序,我在示例中省略了密码选项。