VBScript 回车符

VBScript 回车符

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

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

脚本运行良好,但我有一个问题:

/etc/hosts 文件打印在输出文件用一行长文件代替三行

例如:(out.txt)

         127.0.0.1      localhost  19.20.183.99  MY_IP 10.10.10.10 LOOP

在以下主机文件中打印输出文件

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

Linux系统使用Line Feed来换行,而Windows使用Carriage Return + Line Feed。 http://en.wikipedia.org/wiki/Newline

对于你的情况,我会通过 sed 运行 PATH,将 LF 替换为 CRLF

Const PATH = cat /etc/hosts | sed -e 's/$/\r/' 

http://en.wikipedia.org/wiki/Unix2dos

相关内容