Saya menulis skrip VB berikut untuk menjalankan perintah dari WIN XP pada mesin Linux dan mengarahkan kembali perintah output ke file out.txt (di bawah C: \)
Skrip VB saya mencetak file / etc / hosts dari mesin Linux ke file out.txt
Script berfungsi dengan baik tetapi saya punya satu masalah:
/ etc / hosts file dicetak out.txt file dengan satu garis panjang, di tempat tiga baris
Contoh: (out.txt)
127.0.0.1 localhost 19.20.183.99 MY_IP 10.10.10.10 LOOP
Di tempat untuk mencetak file host berikut out.txt
127.0.0.1 localhost
19.20.183.99 MY_IP
10.10.10.10 LOOP
Skrip VB saya
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
Mohon saran apa yang perlu saya perbaiki dalam skrip VB saya untuk mencetak file host yang benar (baris demi baris) dan bukan sebagai satu baris panjang?
Jawaban:
Sistem Linux menggunakan Line Feed untuk line break, sedangkan windows menggunakan Carriage Return + Line Feed. http://en.wikipedia.org/wiki/Newline
Dalam kasus Anda, saya akan menjalankan PATH melalui sed, untuk mengganti LF dengan CRLF
http://en.wikipedia.org/wiki/Unix2dos
sumber