0

我编写了以下 VBScript 以便在 Linux 机器上运行来自 WIN XP 的命令并将输出命令重定向到out.txt文件(在 下C:\

我不明白为什么命令窗口的输出没有写入out.txt文件。

线路有什么问题

Sh.Run "cmd /k  & CMD >> ""C:\out.txt""" , 1, True

我的完整 VB 脚本:

'TARGET_HOST  - Linux machine

Const TARGET_HOST = "18.20.183.99"
const PATH =  "cat /etc/hosts" 
const LOGIN = "root"
const PASS = " dingdong "
Const PLINKPATH="""C:\SPUTNIK\plink.exe"""

Set Sh = CreateObject("WScript.Shell")

CMD = " echo y | " & PLINKPATH & " -ssh -pw " & PASS & LOGIN & "@" & " " & TARGET_HOST & " " & PATH 

Sh.Run "cmd /k  & CMD >> ""C:\out.txt""" , 1, True

Set Sh = Nothing
4

1 回答 1

4

VBScript 不会在字符串中展开变量。改变这个:

Sh.Run "cmd /k  & CMD >> ""C:\out.txt""" , 1, True

进入这个:

Sh.Run "cmd /k " & CMD & " >> ""C:\out.txt""" , 1, True

最重要的是,您的命令格式错误。您需要在密码和用户名之间放置一个空格,并删除@和主机名之间的空格:

CMD = " echo y | " & PLINKPATH & " -ssh -pw " & PASS & " " _
  & LOGIN & "@" & TARGET_HOST & " " & PATH 
于 2013-09-01T23:26:36.063 回答