Frage : RedirectStandardOutput, das nicht den ganzen Ausgang erhält

Hallo, versuche ich, eine einfache VB.net-APP zu schreiben, die einfach dies tut:

1. Klicken ein Knopf und es durchführt einen ftp-Lernabschnitt using Standardsicherungen windows-FTP
2./>2. DAS GANZES output
3. ihm zu einem Text box.

im Augenblick schreiben, läuft er fein, aber er gefangennimmt nicht das ganzes output.

Here ist der ftp-Lernabschnitt manuell manuell:
BEGIN--------------
C:\PROGRA ~1 \ mydir>ftp - s: FTP.txt 123.123.123.123
Connected 123.123.123.123
220 dem ftp server zur Markierungs-III (Version 1.7 Tue 14. März 10: 10: 00 GMT 2000) ready.
User (123.123.123.123: (keine)):
331 das Kennwort, das für USER123

230 Benutzer erfordert, anmeldete, proceed.
ftp> dir
200 die PORTbefehl successful.
150 Datenverbindung 0, die für Übertragung Akte EF123657.
Type Name
dir send
dir receive
226 der Closing Datenverbindung geöffnet ist. Geforderte Aktentätigkeit successful.
ftp: 54 Bytes, die in 0.00Seconds 54000.00Kbytes/sec.
ftp> empfangen, das, cd /send
250 „senden“, ist gegenwärtiges directory.
ftp> quit
221 Goodbye.
END---------------

Now, wenn ich meine APP laufen lasse, erhalte ich dieses:
BEGIN--------------------
Microsoft Windows XP [Version 5.1.2600]
(C) copyright-1985-2001 Microsoft Corp.

C:\Program Files\mydir >ftp - s: C:\PROGRA ~1 \ mydir \ FTP.txt 123.123.123.123
User (123.123.123.123: (keine)): Name

dir send

dir receive

dir
cd /send
quit

C:\Program Files\mydir >exit
END schreiben--------------------

Please sehen Code unten. Was kann ich tun, um alles gefangenzunehmen?
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
Imports System.IO

Allgemeine Kategorie Form1

    Schwache strResults als Schnur = ""
    Schwaches intResult als ganze Zahl
    Streifen als Schnur verdunkeln = „123.123.123.123“
    strOutBox verdunkeln = „C:\PROGRA ~1 \ mydir“
    strFtpArgs verdunkeln = „C:\PROGRA ~1 \ mydir \ FTP.txt“
    VorSetTextCallback (ByVal [Text] beauftragen als Schnur)



    Privates Unterseeboot Button1_Click (ByVal Absender als System.Object, ByVal e als System.EventArgs) behandelt Button1.Click

        Schwaches intFileCount als ganze Zahl

        strResults = ""
        TextBox1.Text = ""


        'Überprüfen, um zu sehen, wenn es alles gibt zu verarbeiten
        intFileCount = System.IO.Directory.GetFiles (strOutBox). Länge ()

        Wenn intFileCount <= 0 dann
            strResults = strResults u. „dort sind keine zu verarbeiten Akten.“ u. vbCrLf
            TextBox1.Text = strResults
            Unterseeboot herausnehmen
        Sonst
            Directory.SetCurrentDirectory (strOutBox)

            intResult = MsgBox („sind Sie Sie möchten zu den Auslandsakten senden sicher? “, MsgBoxStyle.OkCancel)

            Wenn intResult <> 1 dann
                Unterseeboot herausnehmen
            Beenden wenn
        Beenden wenn



        CMD als neues Threading.Thread (AddressOf GETCMD) verdunkeln
        CMD.Start ()
    Beenden Unterseeboot


    Privates Unterseeboot GETCMD ()
        Schwaches CMDprocess als neuer Prozess
        Schwaches StartInfo als neues System.Diagnostics.ProcessStartInfo


        StartInfo.FileName = „cmd“
        StartInfo.RedirectStandardInput = ausrichten en
        StartInfo.RedirectStandardOutput = ausrichten en
        StartInfo.UseShellExecute = falsch
        StartInfo.CreateNoWindow = ausrichten en
        CMDprocess.StartInfo = StartInfo
        CMDprocess.Start ()

        Schwaches SR als System.IO.StreamReader = CMDprocess.StandardOutput
        Schwacher Schalter als System.IO.StreamWriter = CMDprocess.StandardInput

        SW.WriteLine („ftp - s: “ u. strFtpArgs u. „„u. Streifen)
        SW.WriteLine („Ausgang“)
        strResults = strResults u. SR.ReadToEnd 'Rückkehrresultate des Befehlsfensters

        Me.SetText (strResults)
        SW.Close ()
        SR.Close ()




    Enden-Unterseeboot

    Privates VorSetText (ByVal [Text] als Schnur)

        Wenn Me.TextBox1.InvokeRequired dann
            Schwaches d als neues SetTextCallback (AddressOf SetText)
            Me.Invoke (d, neuer Gegenstand () {[Text]})
        Sonst
            Me.TextBox1.Text = [Text]
        Beenden wenn
    Unterseeboot beenden

Kategorie beenden

Antwort : RedirectStandardOutput, das nicht den ganzen Ausgang erhält

Sie nicht „benötigen“ ein Vertrauen, ADMT jedoch Konzerne zu verwenden können Migration viel einfacher bilden also empfohlen durch die meisten aus diesem Grund.
Weitere Lösungen  
 
programming4us programming4us