{title}

Ich verwende XP mit SP 2. Die Version der Eingabeaufforderung zeigt Folgendes: Als Teil eines DOS-Batch-Jobs, den ich entwickle, versuche ich, 8 Zeilen aus einer Textdatei zu lesen und die Zeichenfolge in jeder Zeile als separate zu speichern Variable zur späteren Verwendung innerhalb des Skripts. Variablennamen können so einfach wie Var1, Var2, Var3 usw. sein. Ich konnte die Zeilen lesen und über eine FOR-Schleife auf dem Bildschirm ausgeben und wollte irgendwie einen numerischen Zähler zum Auffüllen der Variablen verwenden. Die Methode wurde nicht ganz bestimmt, möglicherweise durch Anhängen des Zählers an die Variablennamen oder durch einen einmaligen Aufruf der FOR-Schleife für jede gelesene Zeile, sondern durch Herausspringen aus der Schleife, nachdem jedes Mal die entsprechende Anzahl von Zeilen übersprungen wurde. Mein Zähler scheint um richtig inkrementiert zu werden, da es "8" anzeigt, wenn ich den Wert nach dem Ende der Schleife wiederhole, aber nicht in der Lage war, den korrekten Wert in der FOR-Schleife wiederzugeben, noch konnte ich den aktuellen Wert in einer IF referenzieren Anweisung innerhalb der Schleife. Hier ist der Code, den ich versuche: Set Count = 0For/F "Token =" %% A in (test_input.txt) Do (Set Var = %% A Set/A Count + = 1 Echo %% A Echo% Var% Echo% Count%) Echo% Count% Hier ist der Inhalt von test_input.txt: OneTwoThreeFourFiveSixSevenEightHier ist die Ausgabe, die ich erhalte: OneEight0TwoEight0ThreeEight0FourEight0FiveEight0SixEight0SevenEight0Eight0Eight0Eight0 Ended0SixSixEight0S die Schleife Schleife Schleife Schleife 8 scheint 8 scheint 8 der Schleife der Schleife der Se der sich der der der der der der der der aber die Zählung zeigt immer "0" innerhalb der Schleife. Ich bin auch nicht s ure, warum ich jedes Mal "Acht" für die Variable Var bekomme. Ich würde mich über eine Erklärung freuen, wenn irgendjemand eine anbieten kann. Bei der Recherche habe ich auch gesehen, dass Menschen manchmal Ausrufezeichen um Variablen verwenden, z. B.! Count!, Aber ich bin mir nicht sicher, welche Bedeutung sie haben. Könnte mich bitte jemand auf ihre Relevanz hinweisen? Vielen Dank im Voraus.

Was genau versuchst du für dein Projekt zu tun? Posten Sie ein Beispiel für die Eingabe, Ihre erwartete Ausgabe und den Code, den Sie bisher haben. (und alle anderen Informationen)

Der Code-Ausschnitt und die Beispiel-Eingabedatei, die ich gerade teste, sind oben aufgeführt. Dafür hatte ich erwartet, dass die Ausgabe in der folgenden Weise erfolgen würde: OneOne1TwoTwo2ThreeThree3FourFour4FiveFive5SixSix6SevenSeven7EightEight88Was ich wirklich erreichen möchte, ist das Laden einiger Variablen mit Werten, die sich auf die verwendete Umgebung beziehen. Diese Werte befinden sich in der zu lesenden Textdatei. (Die "Echo" -Zeilen in meinem obigen Originalcode dienen nur zum Debuggen.) Ich hatte gehofft, folgendes zu tun: Set Count = 0For/F "tokens =" ​​%% A in (test_input.txt) Do (Set/A Count + = 1 Setze Var% Count% = %% A) Ich wollte Variablen von Var1 = Eins, Var2 = Zwei, Var3 = Drei usw. setzen. (Die tatsächlichen Werte in der Datei sind Logins, Passwörter, Dateinamen, Pfade , usw.)

Ihr Problem tritt auf, weil gewöhnliche Prozentzeichenvariablen in einer Schleife nur einmal ausgewertet werden, bevor die Schleife ausgeführt wird. Sie müssen die verzögerte Erweiterung verwenden und das Ausrufezeichen als Variablenbegrenzer anstelle eines Prozentzeichens in der Schleife verwenden. Var% count% funktioniert nicht. Aus einem Variablenwert kann kein Variablenname gemacht werden!

Sie haben falsch verstanden, was ich frage. Zeigen Sie, wie Ihre test_input.txt aussieht und was Sie nach der Bearbeitung als Ausgabe erwarten. Auf diese Weise schlagen die hier aufgeführten Personen möglicherweise bessere Vorgehensweisen vor, als dies jetzt der Fall ist.

Die verzögerte Erweiterung mit Ausrufezeichen für variable Begrenzer innerhalb der Schleife hat den Trick getan. Ich kann jetzt Umgebungsvariablen aus einer Textdatei laden. Vielen Dank für die Tipps! Ich werde Beispielcode für das anhängen, was ich laufen habe. Ich habe im Grunde genommen einen Hauptprozess, der eine Routine namens SET_VARIABLE einmal für jede Zeile in der Eingabedatei test_input.txt aufruft und am Ende die Werte aller 8 Variablen ausgibt. (In der Batchdatei, die ich implementieren werde, haben die Umgebungsvariablen aussagekräftigere Namen, und die Eingabedatei enthält andere Werte als nur die Werte {Eins, Zwei, Acht}, mit denen ich getestet habe, wie in der Abbildung gezeigt Originalbeitrag.) Die Ausgabe für den folgenden Code sieht folgendermaßen aus: VAR_1 = OneVAR_2 = TwoVAR_3 = ThreeVAR_4 = FourVAR_5 = FiveVAR_6 = SixVAR_7 = SevenVAR_8 = EightHere ist der getestete Code: @Echo Offsetlocal enabledelayedexpansiongoto tokens = "%% A in (test_input.txt) Do (Setze Var = %% A Setze/A Count + = 1 if! Count! ==% INI_FILE_POSITION% goto DONE_FOR_LOOP): DONE_FOR_LOOPset! VARIABLE_TO_SET! =% Var% if% INI_FILE_POS == 1% goto DONE_SET_VARIABLE_1if% INI_FILE_POSITION% == 2 goto DONE_SET_VARIABLE_2if% INI_FILE_POSITION% == 3 goto DONE_SET_VARIABLE_3if% INI_FILE_POSITION% == 4 goto DONE_SET_VARIABLE_4if% INI_FILE_POSITION% == 5 goto DONE_SET_VARIABLE_5if% INI_FILE_POSITION% == 6 goto DONE_SET_VARIABLE_6if% INI_FILE_POSITION% = = 7 gehe zu DONE_SET_VARIABLE_7if% I NI_FILE_POSITION% == 8 goto DONE_SET_VARIABLE_8echo Fehler INI_FILE_POSITION% INI_FILE_POSITION% nicht recognizedgoto ENDrem rem Hauptprozess: MAINset VARIABLE_TO_SET = VAR_1set INI_FILE_POSITION = 1goto SET_VARIABLE: DONE_SET_VARIABLE_1set VARIABLE_TO_SET = VAR_2set INI_FILE_POSITION = 2goto SET_VARIABLE: DONE_SET_VARIABLE_2set VARIABLE_TO_SET = VAR_3set INI_FILE_POSITION = 3goto SET_VARIABLE: DONE_SET_VARIABLE_3set VARIABLE_TO_SET = VAR_4set INI_FILE_POSITION = 4goto SET_VARIABLE: DONE_SET_VARIABLE_4set VARIABLE_TO_SET = VAR_5set INI_FILE_POSITION = 5goto SET_VARIABLE: DONE_SET_VARIABLE_5set VARIABLE_TO_SET = VAR_6set INI_FILE_POSITION = 6goto SET_VARIABLE: DONE_SET_VARIABLE_6set VARIABLE_TO_SET = VAR_7set INI_FILE_POSITION = 7goto SET_VARIABLE: DONE_SET_VARIABLE_7set VARIABLE_TO_SET = VAR_8set INI_FILE_POSITION = 8goto SET_VARIABLE: DONE_SET_VARIABLE_8Echo VAR_1 =% VAR_1% Echo VAR_2 = % VAR_2% Echo VAR_3 =% VAR_3% Echo VAR_4 =% VAR_4% Echo VAR_5 =% VAR_5% Echo VAR_6 =% VAR_6% Echo VAR_7 =% VAR_7% Echo VAR_8 =% VAR_8%: ENDE

Was Sie brauchen, ist Arrays.Code:

Setzen Sie objFSO = CreateObject ("Scripting.FileSystemObject"). Setzen Sie myFile = objFSO.OpenTextFile ("c: temp test.txt"), bis myFile.AtEndOfStream (Leinenummer) myArray (Leinenummer) = myFile.ReadLineLoop For i = LBound (myArray) To UBound (myArray) WScript.Echo myArray (i) Next

Ich hatte eine Frage zu so etwas, wusste aber nicht wirklich, wie ich es ausdrücken sollte. Das hat mir sehr geholfen.

Neues DVD-Laufwerk

dvd + - rw ist das, was ich will, weil mein anderer kaputt ist, auf den ich geschaut habe www.newegg.com/Product/Product.aspx?Item=N82E16827151173 wie ist das??

komisch, dass es jetzt funktioniert

Self-Fix ist der beste Weg, um Leuten auf diesem Board zu helfen

idk obwohl es komisch war, stellte ich es so ein, dass die Vorderseite auf dem Tisch lag und dann hob ich es auf und es öffnete sich, schaltete den Computer aus und steckte es ein und es funktionierte wie bequem

lol. Ich habe nicht einmal verstanden, was das Problem ist.

Sein Laufwerk funktionierte nicht, weil er die Frontplatte schön lackieren wollte, also zerlegte er das Laufwerk ein wenig

yup WOW congratz broni !!!!!!! Bist du der erste, der Mastrmind macht? Lass uns feiern!

Oh, danke Patio, wo ist mein Bier? .LOL

LOLOLOLOL wie viele Leute haben es dort geschafft?

Top 10 Plakate: ");?>

Das heißt doch nicht "email", oder? Es scheint mir, dass jedes Mal, wenn das Formular mit einem Zeitstempel im Dateinamen gesendet wird, eine neue Datei gespeichert wird.

Ja, es wird per E-Mail verschickt, es ist mit Godaddys Formmail eingerichtet. Im Moment erhalte ich den Betreff (Formularübermittlung) und die Kontakte des größeren Textfelds, aus welchem ​​Grund auch immer, es gibt mir keinen Namen oder keine E-Mail

Okay, es ist gelöst! Hatte gerade die Überschrift für die Weiterleitungsseite an der falschen Stelle!

Heh, das habe ich eigentlich vergessen. Ich bin froh, dass du es sortiert hast.

Beliebte Beiträge