VBScript回车

时间:2013-09-01 19:39:49

标签: vbscript windows-xp

我编写以下VB脚本,以便从Linux机器上的WIN XP运行命令,并将输出命令重定向到out.txt文件(在C:\下)

我的VB脚本我将/ etc / hosts文件从Linux机器打印到out.txt文件

脚本运行正常,但我有一个问题:

/ etc / hosts文件打印在 out.txt 文件中,带有一条长行,代替三行

示例:(out.txt)

         127.0.0.1      localhost  19.20.183.99  MY_IP 10.10.10.10 LOOP

out.txt

中打印以下主机文件
127.0.0.1      localhost
19.20.183.99  MY_IP
10.10.10.10 LOOP

我的VB脚本

Const TARGET_HOST = "19.20.183.99"
const PATH =  "cat /etc/hosts" 
const LOGIN = "root"
const PASS = " dgdgd "
Const PLINKPATH="""C:\dir1\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

请在我的VB脚本中建议我需要修复的内容,以便打印正确的主机文件(逐行)而不是一条长行?

1 个答案:

答案 0 :(得分:2)

尝试为lf和cr(回车)替换lf(换行)。 Linux只有LF,其中windows也需要回车以显示额外的行。

或者,在Notepad ++中打开文件,您会注意到这些行是逐行打印的。 (http://notepad-plus-plus.org/download/v6.4.5.html

编辑: 输出文件以替换换行符后,请尝试以下操作(参考:link):

Const ForReading = 1
Const ForWriting = 2

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\out.txt", ForReading)

strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, chr(10), chr(13) & chr(10))

Set objFile = objFSO.OpenTextFile("C:\out.txt", ForWriting)
objFile.WriteLine strNewText
objFile.Close