Retornos de carro do VBScript

0

Eu escrevo o seguinte script VB para executar comandos do WIN XP na máquina Linux e redirecionar o comando de saída para o arquivo out.txt (em C: \)

Meu script VB imprimo o arquivo / etc / hosts da máquina Linux no arquivo out.txt

O script funciona bem, mas tenho um problema:

O arquivo / etc / hosts foi impresso no arquivo out.txt com uma linha longa, no lugar de três linhas

Exemplo: (out.txt)

         127.0.0.1      localhost  19.20.183.99  MY_IP 10.10.10.10 LOOP

Para imprimir o seguinte arquivo host em out.txt

127.0.0.1      localhost
19.20.183.99  MY_IP
10.10.10.10 LOOP

MY VB script

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

Por favor, avise-me o que eu preciso corrigir no meu script VB para imprimir o arquivo de hosts correto (linha por linha) e não como uma linha longa?

    
por maihabunash 01.09.2013 / 22:08

1 resposta

0

Os sistemas Linux usam alimentação de linha para quebras de linha, enquanto o Windows usa retorno de carro + alimentação de linha. link

No seu caso, eu executaria o PATH através do sed, para substituir o LF pelo CRLF

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

link

    
por 01.09.2013 / 23:24