我编写了以下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
答案 0 :(得分: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