2016-04-14 48 views
-1

Aşağıdaki vbscript komutu vardır:Testi Bir komut vbscript içinde boş bir dize çıktılar

crt.Screen.Send "cat myfile.txt | grep 'L[0-9]*' " & vbcr 

ben, yapmam gereken komut çıkışları şey varsa ya da değil bilmek için bir yol olup olmadığını bilmek istiyorum

+0

'crt' nesnesinin ne olduğunu bilmeden size yardımcı olamayız. Bir 'Crt = CreateObject ("...") 'kümesi olmalı ve kodda crt'nin ne olduğunu ya da' Set crt = new ... 'ise bir VBScript sınıfı varsa tanımlayacaktır. – Lankymart

cevap

1

Yazdığınız sınırlı örnekten alabildiğim kadarıyla, komut dosyası kullanarak görevlerin otomasyonunu destekleyen VanDyke Software's SecureCRT ürününü kullanıyormuşsunuz gibi görünüyor.

Yazılım sağlayıcıları sitesinde çok ayrıntılı bir Scripting Essentials Guide bulunmaktadır. kılavuzda

bu kullanılabilir Ekran nesnesi ile ilişkili Scripting Essentials: A Guide to Using VBScript in SecureCRT
aşağıdaki yöntemlerinden uzak bir makine (kılavuzunda 4.3'e bakınız)

verileri yakalamak için nasıl ayrıntıları Bir uzak makineye bağlantısı aracılığıyla veri yakalamak için: ReadString(), Get() ve Get2(). SecureCRT'nin kayıt kapasitesi, uzak bir aygıttan veri yakalamak için de kullanılabilmesine rağmen, günlüğe kaydetme API'sı, daha ileri bir bölümde (FileSystemObject Kullanarak Dosyalara Veri Yazma) başvurulan ve tartışılan 'dir. , SecureCRT terminali ekranında seçilmiş olan verilere erişme yollarını arıyorsanız, lütfen daha önce, Ekranda Seçilen Metne Erişme bölümüne bakın.

Ayrıca nasıl ReadString() çalıştığını anlatır ve bir değişkene komut çıktısını yakalamak için nasıl kullanılacağına ilişkin bir örnek veren this article kullanışlı bulabilir.

Kılavuz, bir Cisco aygıtından seri numarası almak için ReadString() kullanımının nasıl çalıştığına dair temel bir örnek verir.

crt.Screen.Synchronous = True 
' Send a command to a Cisco device to get the serial number 
' of the device. 
crt.Screen.Send "sh tech-support | in ([sS]erial)" & vbcr 
' Wait for the CR to be echoed back to us so that what is 
' read from the remote is only the output of the command 
' we issued (rather than including the command issued along 
' with the output). 
crt.Screen.WaitForString vbcr 
' Capture the result into a script variable 
strResult = crt.Screen.ReadString("pixfirewall#") 
' strResult will contain something like: 
' Serial Number: 1850889413810201 (0x6935FC6075819) 
MsgBox strResult 

Gereksinimlerinize uyacak şekilde değiştirmeniz gerekenler.

örnek komut gönderilir ve sonra Satır Başı karakteri (anahtar Linux üzerinde etkiler Enter) o temelde çalışır(tükendi komutu belirtmek için) daha sonra çıkış yakalamak ReadString() kullanır döndü ancak sadece terminal penceresinde pixfirewall# numaralı mesajı tespit ettiğinde.