WinFuture-Forum.de: Text Files Per Batch "editieren" - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Text Files Per Batch "editieren"


#1 Mitglied ist offline   sкavєи 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.614
  • Beigetreten: 20. Juli 04
  • Reputation: 62
  • Geschlecht:Männlich
  • Wohnort:Stralsund

geschrieben 05. März 2005 - 17:22

Ich würde gerne einige Bereiche einer Text-Datei (bzw. einer inf.-Datei) ändern. allerdings. nicht die ganze Datei neu erstellen. Daher scheidet echo text>Datei schonmal aus.
Es wäre auch möglich komplette Zeilen zu editieren. Jedoch eben nicht die ganze Datei, da dort noch einige Informationen drin sind, welche zu kompliziert wären sie auszulesen und wieder hineinzuschreiben.

Für diejenigen die wissen worum es sich dabei handelt, es geht mir darum die sysoc.inf per Batch zu bearbeiten und bestimmte HIDEs herauszunehmen, aber nicht alle.

Am besten wäre eine Lösung welche ich folgendermaßen anwenden könnte:
Wenn "ZeileXX" mit "Text01" beginnt dann ändere "Text02" in "ZeileXX" zu "Text03".

Dieser Beitrag wurde von TheSuicider bearbeitet: 05. März 2005 - 17:23

Eingefügtes Bild
Eingefügtes Bild
0

Anzeige



#2 Mitglied ist offline   Hauner 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.294
  • Beigetreten: 03. Januar 05
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 10. März 2005 - 17:59

Ich habe auch so ein ähnliches Problem:
Wenn in der Datei C:\sysconfig.ini eine Zeile mit dem Inhalt "Hallo 1" existiert, dann soll er zum Beispiel mithilfe des Befehls 'goto' zu einem anderen Punkt wechseln.
0

#3 Mitglied ist offline   hoschen 

  • Gruppe: aktive Mitglieder
  • Beiträge: 748
  • Beigetreten: 12. Februar 04
  • Reputation: 2

geschrieben 10. März 2005 - 19:25

@Hauner, für dich gilt:

@echo off

find "TEXT" DATEI

if not errorlevel 1 goto end

echo kein Eintrag
goto schluss

:end
echo Eintrag vorhanden
goto schluss

:schluss


also TEXT durch den Text ersetzen, den du suchen möchtest.

DATEI ist die Datei, die du durchsuchen möchtest.

@TheSuicider, es gibt auch für Windows UNIX Shell Befehle, mit denen du dein Script füttern kannst.

Hab zur Zeit keinen Link, kann das erst morgen früh nachsehen, woher ich die ShellBefehle habe.

Dieser Beitrag wurde von hoschen bearbeitet: 10. März 2005 - 19:28

0

#4 Mitglied ist offline   Hauner 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.294
  • Beigetreten: 03. Januar 05
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 10. März 2005 - 19:40

Danke. Und den Text aus der Datei löschen?
('del "Hallo" test.txt' funktioniert nicht!)

Dieser Beitrag wurde von Hauner bearbeitet: 10. März 2005 - 19:42

0

#5 Mitglied ist offline   hoschen 

  • Gruppe: aktive Mitglieder
  • Beiträge: 748
  • Beigetreten: 12. Februar 04
  • Reputation: 2

geschrieben 10. März 2005 - 19:51

Zitat (Hauner: 10.03.2005, 19:40)

Danke. Und den Text aus der Datei löschen?
('del "Hallo" test.txt' funktioniert nicht!)
<{POST_SNAPBACK}>


da gilt dann, was ich vorher auch an TheSuicider geschrieben habe.
0

#6 Mitglied ist offline   bLaCkRaBbIt 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.396
  • Beigetreten: 08. November 04
  • Reputation: 2
  • Geschlecht:Männlich
  • Wohnort:Karlsbad

geschrieben 10. März 2005 - 22:53

mir ist diese zeile nich ganz klar:

Zitat

if not errorlevel 1 goto


wie funktionert denn generell das mit den errorlevels?ich habe schon relativ viel mit batch gemacht,aber nie was errorlevel,weshalb ich mich damit auch gar nicht auskenne.
0

#7 Mitglied ist offline   Lofote 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.522
  • Beigetreten: 24. August 04
  • Reputation: 1

geschrieben 10. März 2005 - 23:23

Jede EXE und COM kann einen Rückgabewert, genauergesagt eine Ganzahl zurückgeben. Wurde das Programm z.B. in C/C++ geschrieben, ist das die Zahl, die im Return wert von der Funktion "int main()" zurückgegeben wird (wenn du kein C/C++ kannst, kein Problem, das brauchst du um ERRORLEVELs zu verstehen nicht).

Mit "IF ERRORLEVEL n" kannst du eine Abfrage erstellen, und zwar ob der Rückgabewert der LETZTEN EXE/COM mindestens (also gleich oder grösser) n ist.
Daher musst du, wenn du mehrere Fälle abfragen willst, diese der Grösse nach rückwärts sortieren:

IF ERRORLEVEL 10 goto error_keinnetzwerk
IF ERRORLEVEL 9 goto error_keinzugriff
...


Machst du das in der falschen Reihenfolge, würde "IF ERRORLEVEL 9" auch bei 10 greifen und "IF ERRORLEVEL 10" in diesem Fall wohl nie ausgewertet werden.

Mit "IF NOT ERRORLEVEL n" frägst du ab, oder Rückgabewert kleiner als n ist.

In dem Skript von Hoschen ist FIND.EXE (oder wars .COM? Spielt aber keine Rolle) das letzte Programm, das den Rückgabewert ausspuckt. Diesen wertet er aus.

Find gibt als Errorlevel 0 aus, wenn der Text nicht gefunden wurde und >0, wenn er mindestens einmal gefunden wurde. (Kann sein, dass es die Anzahl der gefundenen Instanzen ausgibt, aber das ist jetzt nur ne Vermutung von mir, leider sagt "find /?" nichts darüber aus.)

Neben der ">="-Falle musst du halt auch noch aufpassen, in der Zwischenzeit kein anderes .COM/.EXE-Programm auszuführen, da der ERRORLEVEL von dem wiederum gnadenlos überschrieben wird.
0

#8 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.505
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 10. März 2005 - 23:34

help for
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

#9 Mitglied ist offline   Hauner 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.294
  • Beigetreten: 03. Januar 05
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 11. März 2005 - 17:22

Zitat (Rika: 10.03.2005, 23:34)

Deine Beiträge werden auch immer nichtsaussagender...

@hoschen: Hat sich da jetzt schon etwas ergeben?
0

#10 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.505
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 11. März 2005 - 17:35

Argh. Warum tippt denn nicht einfach mal jemand "help for" ein und schaut sich an, was der for-Befehl mit dem Parameter "/f" bewirkt? Nämlich genau das zeilenweise Einlesen von Dateien, die man dann entsprechend manipulieren und mit "echo %zeileninhalt%>>neudatei.ext" wieder zeilenweise schreiben kann.

Das einzige Problem ist, daß leere Zeilen verlorengehen.
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0