{title}

Gudday allIch möchte die Zeilen einer Datei einzeln lesen und als Variable speichern. Parsen Sie dann dieselbe Variable, um ein Token zu extrahieren, das als andere Variable gespeichert werden soll. Ich kann den ersten Teil mit dem Befehl OK ausführen, aber nicht mit dem zweiten. Ich habe versucht, for und findstr ohne Erfolg zu verwenden. Hier ist mein CodeCode: @echo offclsfor/f "delims =" %% a in (moveTIFF.dat) do (echo %% a) für/f "tokens = 4 delims = "% % b in ("% a%") do (echo %% b) Der Code läuft in Ordnung, aber der Befehl 2nd for zeigt keine Ausgabe an. Dies bedeutet natürlich, dass entweder nichts angezeigt werden kann oder ich die Variable %% b nicht anzeigen kann. Findstrist nicht wirklich geeignet, da Sie die erste Ausgabe kennen müssen und die Ausgabe variabel sein wird. Vielleicht kann for verwendet werden, um eine Zeichenfolge zu analysieren, aber ich weiß nicht, ob es möglich ist. Beispiel für den inputCode: TestingTiffMoves AU PICKLIST 0000544B.TIF TestingTiffMoves AU PICKLIST 0000544C.TIF TestingTiffMoves AU PICKLIST 0000544D.TIF TestingTiffMoves AU PICKLIST 0000544E.TIF TestingTiffMoves AU PICKLIST index.datDies ist der TIF-Name, der immer variiert. Der Pfad ist konstant. Alle Hilfe dankbar angenommen.

Sie sollten Folgendes verstehen. Wenn Sie eine Variable mit dem Namen a nicht auf %% a gesetzt haben, ist a das, was es zuvor war. %% a wird nicht auf magische Weise zu% a%.

HelpmehDanke für die Antwort.1. Habe ich %% a richtig eingerichtet, damit es später verwendet werden kann? 2. Kann ich %% a (oder dessen korrekte Form) für die 2. Analyse übergeben? 3. Wenn foris nicht der beste Befehl ist, um meine 2. Analyse durchzuführen, gibt es einen besseren Befehl? 4. Was ist der Unterschied zwischen %% a und% a%? Ich lerne immer noch und habe noch viel zu tun.

Sie können definitiv for loop verwenden, um Ihre Datei zu analysieren, und ich werde die "Batch" -Gurus Ihnen zeigen lassen, wie. Ich zeige Ihnen, wie Sie method.using vbscript besser verstehen (ich nehme an, Sie verwenden kein prähistorisches Windows) Code: Set objFS = CreateObject ("Scripting.FileSystemObject") strFileSet objFile = objFS.OpenTextFile (strFile) Do Until objFile.AtEndOfLinestrLine (objFile.ReadLine, "") 'Teilen Sie die Zeile in ein ArrayFor i = 0 To UBound (strLine) WScript.Echo "Token" & i & "" & strLine (i)' Drucken Sie jedes Token ausNextstrLine = Join (strLine, "/" ) 'Join back using another delimiterWScript.Echo "Join back:" & strLine' Join back, um zu stringLoopobjFile.CloseoutputCode zu werden: C: test> cscript/nologo test.vbsToken 0Token 1 TestingTiffMovesToken 2 AUToken 3 PICKLISTToken 4 0000544B.TIFMoin back://AU/PICKLIST/0000544B.TIFToken 0Token 1 TestingTiffMovesToken 2 AUToken 3 PICKLISTToken 4 0000544C /0000544D.TIFToken 0Token 1 TestingTiffMovesTo ken 2 AUToken 3 PICKLISTToken 4 0000544E.TIFMelden Sie sich zurück: /TestingTiffMoves/AU/PICKLIST/0000544E.TIFToken 0Token 1 TestingTiffMovesToken 2 AUToken 3 PICKLISTToken 4 index.datMelden Sie sich zurück: /TestingTiffMoves/AU/PICKifIST sieh meine sig

Es ist schrecklich prähistorisch. Ich habe noch nie VB benutzt. Hoffe, einer der Batch-Gurus taucht auf.

wie prähistorisch ?? Windows 3.1 und darunter? vbscript kann bereits ab win9.x verwendet werden, bevor Sie Batch kannten. Sie haben noch nichts davon gelernt, aber jetzt tun Sie es. ist das nicht richtig

C: > Typ tiff.batCode: @echo offrem clsfor/f "delims =" %% a in (tiff.txt) do (Echo %% a) für/f "tokens = 4 delims =" %% b in (tiff.txt) do (echo %% b) AUSGABE: C: > tiff.bat TestingTiffMoves AU PICKLIST 0000544B.TIF TestingTiffMoves AU PICKLIST 0000544C.TIF TestingTiffMoves AU PICKLIST 0000544D.TIF TestingTiffMoves AU PICKLIST 0000544E. AU PICKLIST index.dat0000544B.TIF0000544C.TIF0000544D.TIF0000544E.TIFindex.datC: > Eingang: C: > tippe txt TestingTiffMoves AU PICKLIST 0000544B.TIF TestingTiffMoves AU PICKLIST 0000544C.TIF TestingTiffMoves AU PICKLIST 0000544D.TIF TestingTiffMoves AU PICKLIST 0000544E AU PICKLIST index.datC: >

Billrich Danke für Ihren Beitrag. Beim Lesen Ihres Beitrags wird mir klar, dass ich nicht ganz so klar war, wie ich es sein musste. Ich möchte jede Zeile der Datei ansehen. Wenn ich diese Zeile betrachte, muss ich sie zweimal analysieren, bevor ich sie entferne in die nächste Zeile 1. Schritt: Ganze Zeile holen und in einer Variablen speichern, zB %% a2. Schritt: parsen, um den Dateinamen (4. Token) erneut aus der Zeile oder aus der in Schritt 1 gespeicherten Variablen (%% a) zu extrahieren Setzen Sie dieses Token in eine andere Variable, z. B. %% b3. Schritt: Verwenden Sie die Variablen %% a und %% b in weiteren Vorgängen. 4. Schritt: Gehen Sie zur nächsten Zeile und beginnen Sie erneut mit dem ersten Schritt. Ist das klarer (nützlich)? Oder ist das Wasser jetzt so schlammig, dass es Schlamm ist?

Code: Code: @echo offfor/f "tokens = 1,2,3,4 delims =" %% a in (tiff.txt) do (Echo Ganze Zeile: %% a %% b %% c %% d echo Dateiname:: %% d echo.) Ausgabe: Code: Ganze Zeile: TestingTiffMoves AU PICKLIST 0000544B.TIFF-Dateiname: 0000544B.TIFGanze Zeile: TestingTiffMoves AU PICKLIST 0000544C.TIFF-Dateiname: 0000544C. TIFWhole-Zeile: TestingTiffMoves AU PICKLIST 0000544D.TIFFilename: 0000544D.TIFWhole-Zeile: TestingTiffMoves AU PICKLIST 0000544E.TIFFilename: 0000544E.TIFWhole-Zeile: TestingTiffMoves AU PATLISTole-Index: Index

Beiträge von SL anzeigen

Beiträge von SL anzeigen

Versuchen Sie dies, wenn Sie tatsächlich benannte Variablen verwenden möchten. Code: @echo offsetlocal enabledelayedexpansionfor/f "tokens = 1,2,3,4 delims =" %% a in (tiff.txt) do (set full_line = %% a %% b %% c %% d set dateiname = %% d echo Vollständige Zeile:! vollständige Zeile! echo Dateiname:! dateiname! echo.)

Ja, Sie haben Recht, ich habe versucht, Code Tiger (OP) funktionsfähig zu machen oder herauszufinden, warum er nicht funktioniert. Ich werde diese letzten Beiträge löschen. Hier ist der Code von Tiger: @echo offclsfor/f "delims =" %% a in (moveTIFF.dat) do (echo %% a) für/f "tokens = 4 delims = " %% b in ("% a%") do (echo %% bWarum funktioniert es nicht?

Zum einen ist% a% undefiniert. Tut mir leid, dass ich zuvor unhöflich war. Das OP scheint den Unterschied zwischen: einseitigen Schleifenvariablen, die (offiziell) %% a bis %% z und %% A sein können, nicht zu verstehen bis %% Z, dh (in einem Stapel) zwei Prozentzeichen %%, gefolgt von einem einzelnen Zeichen, das nur innerhalb der Schleife existiert, und zwei gewöhnlichen Variablen, die mit set erzeugt werden, z setze file = C: testeadme.txt und erweitere es mit einem Prozentzeichen vor und nach z. echo% file% oder tippe% file% oder kopiere% file% d: Ordner. Diese Namen können eine beliebige (angemessene) Anzahl von Zeichen lang sein (ich gehe davon aus, dass es eine Art Systembeschränkung gibt, aber es ist nicht klar, worum es sich handelt). Sie sind in der gesamten Batchdatei vorhanden. In Schleifen für doppelseitige Variablen gelten spezielle Bedingungen, auf die ich hier nicht näher eingehen werde.

Ich finde es lustig, dass der Op angefangen hat, für Schleifen zu lernen, bevor er oder sie den Befehl set wirklich gelernt hat.

Viele Leute "lernen" nicht so sehr, Code zu schreiben, sondern kopieren und fügen ihn ein.

Sehr wahr, aber manche Leute lernen so. Ich habe zuerst gelernt, wie man für Schleifen verwendet, indem ich Jacobs Code in seiner AoA Local BETA studiert habe. Wenn ich nur das.zip-Archiv noch habe.

Ich war einer der Verrückten, die durch das Lesen der Dokumentation gelernt haben. die MS-DOS 6 helfen, um genau zu sein.

Ich bin einer von denen, die zu jung sind und nicht einmal geboren wurden, als MS-DOS in der Nähe war. Wie viel von dieser Dokumentation würde auf den Befehlsprozessor in Windows XP zutreffen? und, ist es im digitalen Format? und wenn die Antwort auf die zweite Frage ja ist, darf ich eine Kopie haben?

ntcmds.chm ist viel besser als die in MS-DOS enthaltene Hilfereferenz.

% Windir% Helptcmds.chm unter XP, aber leider ist es auf vielen Computern, z. B. von Compaq/HP, nicht möglich, ntcmds.chm separat vom Hilfe- und Supportcenter auszuführen, sodass Sie die CHM-Suche nicht verwenden können Anlage leicht. Ich denke, das Ausführen von hh ntcmds.chm könnte es tun, obwohl AS für Vista nicht enthalten ist. Holen Sie es sich also von einem XP-System oder einer Installationsdiskette oder von z. Windows Server 2003 Adminpak von Microsoft.

Viele Leute machen den Copy-and-Paste-Teil, ohne den Lernteil zu machen. Oft sagen sie dann, dass sie ein Programm "geschrieben" haben, aber anscheinend sind sie sich der offensichtlichsten Fehler und Irrtümer in dem so erzeugten Code nicht bewusst. Fehler, die sie nicht begangen hätten, hätten sie tatsächlich darüber nachgedacht, was der Code tut.

Salmon TroutDanke für deinen Beitrag. Sie haben völlig Recht, dass %% vs.% mir ein bisschen (viel?) Fremd ist. Ich habe versucht, ein gutes DOS-Buch zu finden, aber es scheint ziemlich schwierig zu sein, es mit dem vor 10 Jahren zu vergleichen Geben Sie Ihren Code ein und geben Sie ihm ein burl.PS: Es ist erstaunlich, wie viele Beiträge in diesen Threads erscheinen können, wenn Sie sich für einen Moment abwenden.

Seufzer. Ich hatte am Wochenende Geburtstag und bin zu nahe an 50, um darüber nachdenken zu wollen. Ich hatte ein Problem mit DOS 1.22, als es zum ersten Mal herauskam und bis 5.0 weiterging. Danach bin ich für ein paar Jahre zu C, Pascal gewechselt. Ich hatte 10 Jahre Pause, aber jetzt programmiere ich wieder. Ich habe etwas C-Code geschrieben, aber um die Aufgabe zu erledigen, die mir DOS gegeben hat, wird es helfen. DOS ist einfacher zum Verschieben, Löschen usw. von Dateien: Eine Kopie wäre besser, wenn möglich.

Wenn Ihre Aufgabe nur das Kopieren, Verschieben oder Löschen von Dateien ist. ABER wenn Sie ernsthaft programmieren möchten, ist DOS nicht das richtige Werkzeug. Das Rechnen hat sich seit Ihrer Zeit weiterentwickelt. Heutzutage müssen wir nicht nur Dateien verschieben, kopieren, löschen, sondern es gibt eine Vielzahl von Aufgaben, die die Leute erledigen, wie z. B. Dinge aus dem Internet zu holen und HTML, XML zu analysieren, Text in PDFs zu lesen und zu analysieren, Word-/Excel-Dateien zu lesen und abzurufen daten, datenbank abfragen, telnetting, dateitransfers etc

STI änderte den Code, um meine Akten zu verschieben und aufzuräumen und es arbeitete eine Festlichkeit. Vielen Dank dafür. Weiter zu Ihren Kommentaren zu weiteren Informationen. Wenn ich mir Ihren Code ansehe, wundert mich Ihre Verwendung von %% a in zwei anscheinend unterschiedlichen Situationen. Zuerst verwenden Sie es (so scheint es mir), um die Token in der Zeile zu durchlaufen, und dann verwenden Sie es als tatsächliche Variable mit einem bekannten Wert. Wie behält DOS den Überblick? Sie weisen den aktuellen Wert von %% a auch den anderen Variablen %% b, %% c, %% d zu, ohne sie explizit zuzuweisen oder festzulegen. Wieder wie macht DOS das? Ohne ein gutes Nachschlagewerk fällt es mir schwer, über Befehle wie !! Ich habe noch keine Seite gefunden, die solche scheinbar obskuren Befehle erwähnt. Haben Sie ein gutes Buch oder eine Website zur Verfügung?

! var! Ist kein Befehl. Es ist dasselbe wie% var%, außer in einer for-Schleife, wenn die verzögerte Erweiterung aktiviert ist. Ich habe nichts von meinem vernünftigen Wissen aus einem Buch gelernt. Versuch, Irrtum und die Codes anderer suchen.

Sie müssen die FOR-Hilfe lesen. Öffnen Sie ein Befehlsfenster und geben Sie FOR /?

TrID

www.technibble.com/repair-tool-of-the-week-trid/ Wenn Sie jemals CHK-Dateien wiederhergestellt haben, die mit CHKDSK und SCANDISK erstellt wurden, wissen Sie wahrscheinlich bereits, dass Sie die Datei wieder in die ursprüngliche Erweiterung umbenennen und die Datei wiederherstellen können. Das Hauptproblem ist jedoch, dass Sie häufig nicht wissen, wie die ursprüngliche Erweiterung lautete. Oder was ist, wenn Ihnen jemand eine Datei ohne Dateierweiterung sendet? War es eine .doc-Datei? War es eine PowerPoint-Präsentation? Wer weiß. Hier kommt TrID ins Spiel. TrID ist eine portable Freeware-Anwendung, die alle binären Signaturdateien scannen und den Dateityp identifizieren kann. Noch besser ist, dass die Anwendung die binären Signaturen nicht hart codiert, sodass Sie Ihre eigenen erstellen oder weitere herunterladen können. Derzeit verfügt TrId über mehr als 3000 Dateityp-/Dateierweiterungsdefinitionen. TrID ist als GUI-Schnittstelle, Befehlszeilenschnittstelle und Online-Website verfügbar. Um die GUI- und Befehlszeilenschnittstellenversionen zu verwenden, müssen Sie die Definitionen herunterladen (Link unten). und legen Sie sie in das gleiche Verzeichnis wie die Anwendung. In der GUI-Version müssen Sie die Definitionen nicht im selben Verzeichnis ablegen, in der Befehlszeilenversion jedoch.

Beliebte Beiträge