Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Problem mit For und Errorlevel

Frage Entwicklung Batch & Shell

Mitglied: copro

copro (Level 1) - Jetzt verbinden

09.02.2006, aktualisiert 10.02.2006, 7336 Aufrufe, 6 Kommentare

Hallo Zusammen sitze hier grat an einem Batchfile und hab folgendes Prob:

Eine txt (softlist.txt) beinhaltet mehrere Angaben wie Winrar usw.

Das Ziel: mittels For Schleife und Errorlevel doppelte Einträge entfernen:
Zuerst erstelle ich mittels Batch eine weitere txt (sortsoftlist.txt)

(Womit ich zu meiner 2 Frage komme. Ist es möglich mittels Batch eine komplett leere txt zu erstellen?)

anschlissend "vergleiche" ich die zwei txt und wenn der Eintrag nicht vorhanden ist, wird er in die 2. txt geschrieben...

FOR /f %%a IN (softlist.txt) do find /i "%%a" "sortsoftlist.txt" & echo %errorlevel%

Ergibt denn errorlevel 3, IMMER... Ob Eintrag vorhanden oder nicht.


Eigentlich sollte das ganze dann so aussehen:

FOR /f %%a IN (softlist.txt) do find /i "%%a" "sortsoftlist.txt" & if %errorlevel% == 1 echo %%a >> sortlist.txt

Wenn ich es direkt in CMD test erhalte ich beim ersten Versuch errorlevel 0 und beim zweiten mal 1...


Hoffe es kann mir jemand helfen...

MfG Copro
Mitglied: Biber
09.02.2006 um 15:15 Uhr
Moin copro,

Die erste Frage:

FOR /f %%a IN (softlist.txt) do find /i "%%a" "sortsoftlist.txt" & if %errorlevel% == 1 echo %%a >> sortlist.txt

Nicht so kompliziert...

FOR /f %%a IN (softlist.txt) do find /i "%%a" "sortsoftlist.txt" || echo %%a>>sortlist.txt

Thats all.

Grüße
Biber
Bitte warten ..
Mitglied: copro
10.02.2006 um 00:33 Uhr
so schreibt er doch bloss alle zeilen rüber oder?
es geht darum, dass falls der Wert schon existiert er ihn nicht nocheinmal reinschreibt...

Könntest du mir noch sagen was der Unterschied zwischen & | || ist?

Das eigentliche Problem meiner Zeile ist, dass der Errorwert in einer Batchdatei immer 3 beträgt!
Wieso gibt find denn Errorwert 3?

Edit:

Ok der Grund ist das der vorherige Errorwert weitergegeben wird...
Hab ihn mal resetet auf 0 und welch wunder er gibt als errorwert 0 aus... IMMER...
Sprich der findbefehl gibt garkeinen Errorwert... Wie kann das sein?
Allerdings nur wenn ich ihn verknüpfe, egal ob mit | oder & wenn ich es als einzelnen befehl stehen habe geht es. aber so habe ich lediglich den wert der letzten zeile in der for schleife...

MfG und thx Copro
Bitte warten ..
Mitglied: Biber
10.02.2006 um 01:06 Uhr
Na, copro,
dann ist irgendetwas anderes faul bei ERRORLEVEL 3...
Üblich bei Find.exe sind halt "0" wenn gefunden oder "1" wenn nicht gefunden.
Errorlevel 3 deutet eher auf einen Syntaxfehler oder Datei nicht gefunden...

Tasten wir uns langsam ran,,am CMD-Prompt (kein Batch).
~~~~~
Schritt 1:

>FOR /f %a IN (softlist.txt) do @echo %a
...sollte alle Zeilen (bzw. das erste Token davon) liefern,
Z.B. also...
Winrar.exe
AngelaMerkelNackig.jpg
....
..etc.

~~~~~~~~~~~~~~~~~~~~
Schritt 2, falls das geklappt hat:
>FOR /f %a IN (softlist.txt) do find /i "%a" sortsoftlist.txt
Soll eine wirre Liste bringen von Fundstellen und Leerzeilen, wenn nicht gefunden.

~~~~~
Schritt 3:
FOR /f %a IN (softlist.txt) do find /i "%a" sortsoftlist.txt >nul || @echo %a

Sollte nur alle Zeilen auflisten, die in sortlist.txt, aber nicht in sortsoftlist sind.

Wo ich jetzt ein wenig durcheinander komme: arbeitest Du jetz mit 2 oder 3 Dateien?
Angehängt werden soll doch bestimmt an die Datei "sortsoftlist.txt", oder?

Das wäre dann diese CMD-Zeile:
FOR /f %a IN (softlist.txt) do find /i "%a" sortsoftlist.txt>nul ||@echo %a>>sortsoftlist.txt

bzw. als Batch mit zwei Prozentzeichen statt einem:
FOR /f %%a IN (softlist.txt) do find /i "%%a" sortsoftlist.txt>nul ||@echo %%a>>sortsoftlist.txt

In der Theorie klappt es... *gg

Die Unterschiede zwischen "|", "||" , " &", "&&":
"|" ist ein einfaches Pipe-Symbol...der Output von einem Programm soll als Input für das nächste dienen.
echo.|date
...schickt einen "Returntastendruck" an den Befehl "Date".
~~~~~~
"&" verkettet zwei Befehle.
"@echo off & setlocal" ist meine Standard-Startzeile injedem Batch.
Mache ein "echo off" und danach ein "setlocal".
~~~~~~
"&&" ist ein "LOGISCHES UND".
dir *.txt >nul && copy *.txt x:\y\*.*
Mache ein DIR-Kommando, Output ins Nirwana UND NUR WENN KEIN FEHLER dann ein copy...
Wenn keine *.txt-Dateien gefunden werden, dann IST ES ein Fehler und copy wird nicht ausgeführt.
~~~~~~~
"||" ist umgekehrt ein "LOGISCHES ODER".
find "whatever" myInidatei.ini >NUL || echo Whatever=42>>myIniDatei.ini
..würde, ähnlich wie in Deinem Fall oben, in der MyIniDatei.ini nach einer Zeile "whatever" suchen (Ausgabe von Find wieder ins Nirwana) bei NUR WENN FEHLER (nicht gefunden) eine neue Zeile mit "whatever=42" anhängen.

Besser kann ich es vor dem Frühstück nicht erklären

Gruß Biber
Bitte warten ..
Mitglied: copro
10.02.2006 um 01:31 Uhr
Biber du bist mein Held =)
Nachdem ich das mit dem Pipe usw. geschnallt habe habe ich auch deinen befehl verstanden und es geht jetzt.
Als du es mir das erstemal geschrieben hast, hat er diese Zeilen in ein weiters txt geschrieben und ich habs übersehen....

Auf jeden Fall vielen Dank und weiter so =)
Bitte warten ..
Mitglied: Biber
10.02.2006 um 01:35 Uhr
Auf jeden Fall vielen Dank und weiter so =)

*rotwerd* ..Danke, danke...

..aber nur, wenn Du in "Batch & Shell" nie wieder geht sagst...sag bitte funktioniert... bitte!

Have a nice morning
Frank / der Biber aus Bremen
Bitte warten ..
Mitglied: copro
10.02.2006 um 01:38 Uhr
LOL

..aber nur, wenn Du in "Batch &
Shell" nie wieder
geht sagst...sag bitte
funktioniert... bitte!


Auf jeden Fall =)
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
BatchFile mit Errorlevel
gelöst Frage von MemaAaBatch & Shell7 Kommentare

Hallo Da ich mit Batchprogrammierung nur Grundlegende Erfahrungen habe frage ich hier nach. und zwar habe ich ein Batchfile, ...

Batch & Shell
For bringt falsches Errorlevel
gelöst Frage von golsinBatch & Shell5 Kommentare

Guten Morgen, mein Ziel ist es aus den for Schleifen das Errorlevel des Pings zu bekommen, komischerweise bekomme ich ...

Batch & Shell
Win10 ändert den Errorlevel? ( Batch )
gelöst Frage von clragonBatch & Shell12 Kommentare

Hey Leute, Ich habe heute wieder mit Prozessen herumgebastelt, die sich gegenseitig überwachen. Da plötzlich, habe ich einen Fehler. ...

Windows Server
For Schleife mit Errorlevel
Frage von berlingerWindows Server5 Kommentare

Hallo Zusammen ich versuche aus einer Text-Datei die IP-Adresse auszulesen und anschliessend via PSEXEC auf dem Zielrechner einen Registry-Key ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Necur-Botnet soll Erpressungstrojaner Scarab massenhaft verbreiten

Information von BassFishFox vor 6 StundenErkennung und -Abwehr

12,5 Millionen Spam-Mails aus einem Bot-Netz mit 6 Millionen Computern? Eigentlich eine schwache Leistung. Die Erpresser setzen dabei auf ...

Microsoft

Nadeldrucker-Problem unter Windows - Microsoft liefert Updates

Information von BassFishFox vor 7 StundenMicrosoft

Hat ja nicht lange gedauert. Nachdem die November-Updates für Windows 7, 8.1 und 10 zahlreiche Nadeldrucker lahmgelegt hatten, stellt ...

Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 14 StundenLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Heiß diskutierte Inhalte
Windows Server
Kann man im KMS nachschauen , wieviele Clients den Key in Anspruch genommen haben
gelöst Frage von rainergugusWindows Server15 Kommentare

Hallo, wir haben einen KMS Windows 10 Key. Dieser ist ja W7 kompatibel. Aber unser Windows 7 Pool registriert ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...