{title}

Ich benötige einen Code, um die Dateigröße von continue.txt zu überprüfen. Wenn sich diese geändert hat, fahren Sie mit dem Skript fort. Sonst nichts tun. Dies ist das Layout meines Codes: Code: Befehle hier oben: Schleifencode zum Abrufen der Dateigröße Weitere Befehle: Code zum Überprüfen der neuen Dateigröße. Wenn sich die Dateigröße geändert hat: Zur Schleife Ich habe zuvor etwas über die Dateigröße gesehen, kann sie jedoch nicht mehr finden .

ZUM /? werde es dir sagen

Also: loopfor/f %% a in ("continue.txt") setzt var1 =% ~ zBefehlefor/f %% a in ("continue.txt") setzt var2 =% ~ zBefehle% var1% NEQ% var2 % goto loop) würde das funktionieren?

so etwas sollte funktionieren Code: für/f %% a in ("continue.txt") setze var1 =% ~ z Befehle für/f %% a in ("continue.txt") setze var2 =% ~ z Wenn% var1% NEQ% var2% goto loop

Code: @echo off: loopfor %% a in ("C: test continue.txt") do (setze var1 = %% ~ za) rem Weitere Befehle.for %% a in ("C: test continue") .txt ") do (setze var2 = %% ~ za) if% var1% NEQ% var2% (goto: loop)

Wenn sich die Dateigröße ändert und Sie wieder zur Schleife zurückkehren, bleibt sie unverändert. Möchten Sie die neue Dateigröße mit der alten tatsächlich AKTUALISIEREN?

Nein, wenn sich die Dateigröße während der Ausführung der Befehle "More" geändert hat, ist dies nicht der Fall. Beachten Sie den Code im 5. Stock.

Was ich meine ist, wenn continue.txt so ist (wobei die erste Spalte der Dateiname ist, die zweite Spalte die Größe). Code: file1 123file2 246und wenn sich die Größe von file1 zum Beispiel auf 678 ändert und Sie es nicht aktualisieren (abhängig von OP). Wenn Sie die Schleife durchlaufen, wird bei der Überprüfung die geänderte Dateigröße wieder angezeigt. In den meisten Szenarien dieser Art möchte OP entweder eine Warnung an sich selbst senden oder die Option haben, die Größe zu aktualisieren, nachdem überprüft wurde, ob die Datei in Ordnung ist.

@OP, hier sind 2 Alternativen, die vbscript und Perl verwenden. Der Mechanismus verwendet eine Schleife, daher muss kein zusätzlicher filesvbscriptCode erstellt werden: Set objFS = CreateObject ("Scripting.FileSystemObject") Set dict = CreateObject ("Scripting.Dictionary") 'Verzeichnis zum Überprüfen von filesstrDir = "C: test "Setze objFolder = objFS.GetFolder (strDir) Do For Each strFiles In objFolder.Files strFileName = strFiles.Name strSize = strFiles.SizeIf not dict.Exists (strFileName) Dann 'Hole Dateinamen und Größe zum Wörterbuch dict.Add strFileName, strSizeElseIf dict.Exists (strFileName) Then ', falls bereits im Wörterbuch, überprüfen Sie die Größe If Not dict (strFileName) = strSize Then WScript.Echo "Found:", strFileName, "Size not equal" WScript.Echo "Original:", dict (strFileName ), "current:", strSize WScript.Echo "wird aktualisiert." dict.Remove strFileName dict.Add strFileName, strSize End If End If NextWScript.Sleep 4800 'milliseconds.Loop Wenn 1 = 1save as myscript.vbs an der Eingabeaufforderung, geben Sie Folgendes ein: cscript/nologo myscript.vbsoutput: Code: C: test> cscript/nologo test.vbsFound: 1.txt Size not equalOriginal: 280 current: 286updating.Found: test.vbs Size not equalOriginal: 4993 current: 4994updating.Found: test.vbs Size not equalOriginal: 4994 current: 4995updating.if you know Perl und in der Lage, itCode zu benutzen: benutze File :: stat; mein $ dir2check; meine% Größen; #speichere Dateinamen und Größen während (1) {while () {$ sb = stat ($ _); print "überprüfe $ _."; if (! (definierte $ size {$ _})) {# Dateiname und Größe für neue Dateien speichern $ size {$ _} = $ sb-> size; } elsif ($ sb-> size ne $ size {$ _}) {print "Dateigröße für $ _ ungleich"; print "Originalgröße:". $ size {$ _}. ""; print "Neue Größe:". $ sb-> size. ""; print "Aktualisierung."; $ size {$ _} = $ sb-> size; }} Schlaf 60; #wait 60sec} Fügen Sie nach Belieben weitere Funktionen hinzu.

Das stimmt, manchmal ist continue.txt wie folgt, wobei die erste Spalte der Dateiname und die zweite die Größe ist. Aber dieser Beitrag ist nicht. Dieser Beitrag soll die Größe von continue.txt erhalten. Ihre VBS/Perl-Skripte scheinen nicht schlecht zu sein. Sie können jedoch nicht zur Behebung des Problems in diesem Thema verwendet werden.

Meine Skripte berücksichtigen alle Dateien im Verzeichnis. Wenn OP nur 1 Datei prüfen möchte, ist es nicht sehr schwierig, nur 1 Datei zu optimieren, indem der Dateiname überprüft wird. So löst es das Problem?

Natürlich ist VBS/Perl leistungsstark genug, um die Dateigröße zu überprüfen. Aber ich gehe davon aus, dass OP Hilfe zu BAT sucht.

Wenn Sie nur 1 Befehl in der Schleife haben, müssen Sie die Zeilenfortsetzung nicht mit den Klammern durchführen. Sie können diesen Code ausführen: Setzen Sie für %% a in ("C: test continue.txt") var1 = %%. ~ zaSame with IF testsAuch müssen Sie die Dateigröße jedes Mal um den loopCode herum nur einmal überprüfen: rem-Befehle für %% a in ("C: test continue.txt") setzen newsize = %% ~ zarem hier startet die Schleife, die nur benötigt wird um die Dateigröße einmal zu überprüfen: looprem weitere Befehlerem überprüfen, ob sich die Größe geändert hatset oldsize =% newsize% for %% a in ("C: test continue.txt") setze newsize = %% ~ zaif% newsize% NEQ% oldsize % goto loopSie können sich das Leben erleichtern, indem Sie Variablennamen verwenden, die etwas bedeuten

Für mich gibt es wirklich nur zwei Arten der Definition von "Charge" .1) Reine Charge. dh das alles nur mit cmd.exe machen2) Batch. Verwenden Sie cmd.exe, um Tools/Utitlies (z. B. exe) zu verketten, um Aufgaben auszuführen. Worüber spricht OP Ihrer Meinung nach?

Ja, die erste for-Schleife soll die Dateigröße berechnen, die zweite soll prüfen, ob sie sich geändert hat. Der Befehl dazwischen lautet Type.und die Datei ändert sich häufig. Ich möchte nur eine Schleife, wenn sich die Größe der Datei ändert. (Vorzugsweise in reiner Charge, aber wenn ich das kann, ist das auch gut.)

Bist du ein Programmierer oder nicht? Eigentlich bin ich nicht. Aber ich möchte den Standardstil studieren und verwenden. Natürlich hat verschiedene Comanpy unterschiedliche "Standards". Das ist okay. Ich werde Sie nicht überreden. Sie bestehen auf Ihrem Einfachen. Aber ich bestehe auf meinen Klammern. Das ist nicht absolut. Es hängt davon ab, wann die Dateigröße geändert wird.

OP hatte es oben auf der 2. Seite geklärt. Kein "Nachdenken" mehr nötig:)

Sie müssen die Dateigröße überprüfen, wenn Sie den Stapel zum ersten Mal ausführen, dann geben Sie die Schleife ein, und danach gehen Sie die Schleife immer wieder durch. Sie überprüfen also die Dateigröße beim ersten Mal, bevor Sie in die Schleife eintreten. Danach können Sie jedes Mal in der Schleife nach Änderungen suchen

OKAY. Siehe meine Antwort an helpmeh.

Bestehen Sie auf Klammern, so oft Sie möchten, aber sie sind nicht mit älteren Versionen kompatibel.

Als ich Schleife sagte, wollte ich ständig die Dateigröße überprüfen und ob sie sich ändert DANN gehe zur Schleife, um das Skript fortzusetzen.

Nun, das sagt dein erster Beitrag nicht.

Tut mir leid, wenn ich dich irreführe. Als ich Schleife sagte, meinte ich in der FOR-Schleife, wie beim Überprüfen der Dateigröße auf Änderungen.

Sie möchten also zu einem bestimmten Zeitpunkt im Stapel warten, bis sich die Dateigröße ändert? Was dann tun?

Dann gehe zur Endlosschleife. Was passiert ist: Startbefehle: Endlosbefehl zum Abrufen der aktuellen Dateigröße Weitere Befehle: Befehl zum Überprüfen, ob sich die Dateigröße geändert hat (wenn dies nicht der Fall ist, wird die Prüfung fortgesetzt, aber nicht fortgesetzt)

Es gibt keinen einzigen "Befehl zum Überprüfen, ob sich die Dateigröße geändert hat", aber es gibt eine Möglichkeit, die Dateigröße zu ermitteln, die Sie bereits genau kennen. Es gibt auch eine Möglichkeit, eine neue Dateigröße mit einer vorherigen Dateigröße zu vergleichen. Und je nach Ergebnis dieses Vergleichs etwas unternehmen. Alles, was Sie tun müssen, ist darüber nachzudenken.

Also.Code: Starten von commands.:loopfor %% a in ("C: test continue.txt") set ofs = %% ~ zaMore-Befehle: loop2for %% a in ("C: test continue.txt") ") setze nfs = %% ~ zaif"% ofs% "=="% nfs% "goto loop2goto loopDas sollte funktionieren. Ich werde es jetzt versuchen. Danke, dass du so offen mit mir bist!

Gut gemacht!

Möglicherweise möchten Sie eine Zeitverzögerung in Betracht ziehen, um die Festplatte nicht zu beschädigen.

Ich möchte von jeder Person assistieren, die Micorosoft Phrase 2007 hat.

Wenn es jemanden gibt, auf dem Microsoft Word 2007 installiert ist, können Sie mir bitte ein sicheres Dokument von allem schicken, was ich gerade in meinem Computer geändert habe. Ich möchte mit einem Wort 2007 testen. Ich besitze kein 2007, also bitte, wenn Irgendjemand hat irgendeine Art von Word-2007-Dokument, bitte schreiben Sie mir eine PM und ich habe Ihnen meine E-Mail gegeben, um das fileTQ so sehr für Ihre Hilfe zu senden

Meinen Sie, Sie möchten sehen, ob Sie eine Word 2007-Datei mit einem anderen Programm öffnen können?

yeah.i habe gerade etwas getan, also schicke mir bitte eine Datei mit Word 2007 PM, wenn du es hast.TQ

Sie benötigen Word 2007, um eine Word 2007-Datei zu öffnen. Die einzige andere Möglichkeit ist die Installation des Microsoft Office Compatibility Pack für Word-, Excel- und PowerPoint 2007-Dateiformate Wenn Sie eine frühere Version von Office haben.

Ja, das weiß ich, aber ich versuche etwas anderes

Und was genau ist das "etwas anderes"?

Beliebte Beiträge