WinFuture-Forum.de: Zeilen Löschen Im Ini-file Per Batch - Macht Probleme - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Zeilen Löschen Im Ini-file Per Batch - Macht Probleme


#1 Mitglied ist offline   Ludix 

  • Gruppe: Mitglieder
  • Beiträge: 8
  • Beigetreten: 20. Januar 10
  • Reputation: 0

geschrieben 29. März 2010 - 20:54

Hallo zusammen

Ich habe ein Problem mit einer Batch und hoffe auf eure Unterstützung. Doch zuerst eine kurze Erklärung meines Standpunktes:

In meiner Firma verwalten wir unterschiedliche Betriebe, welche je einen Ordner mit einer zweistelligen Nummer haben, welcher dann einige Unterordner in sich hat. In diesem Unterordner befinden sich die User-Homes. In diesen User-Homes liegt je ein INI-File, in welchem sich eine Zeile mit "VersionSignatur=X" befindet.
Wenn nun ein User intern die Abteilung oder gar den Betrieb wechselt, dann löscht man diese Zeile, worauf in Outlook automatisch eine neue Signatur aus den AD-Informationen zusammengestellt wird (Darin stehen Dinge wie Abteilung, Direktwahl und Betrieb).
Unsere Betriebe haben rund 2500 Angestellte, was natürlich eine nicht unbeachtliche Anzahl an wöchentlichen Mutationen ergibt. Und bei jeder einzelnen muss man sich durch die Ordnerstruktur klicken, das INI-File öffnen und die Datei löschen.
Ich bin der Informatik-Lehrling in dieser Firma und habe mir nun als kleine Zwischenaufgabe zum Ziel gelöst, diese Prozedur etwas zu verkürzen, zuerst mal mit einem Batch-File. Wenn das dann funktioniert, will ich mir dann weitere Dinge wie VBS etc. anschauen.

So, nun zum eigentlichen Problem: Der momentane Stand ist der, dass ich die Betriebsnummer angebe und anschliessend den eindeutigen Benutzer-Kürzel, welcher gleich ist wie der Ordnername des User-Homes.
Diese werden dann in Variablen gespeichert und ergänzen somit den hinterlegten Pfad (bis auf die Nummern und Benutzer-Kürzel sind die Ordnerstrukturen 1:1 identisch). Danach wird das INI-File ausgelesen und in eine Datei namens "ausgabe.txt" gespeichert (hat sonst Probleme gegeben, wenn ich das INI-File direkt ersetzen wollte). In dieses File ausgabe.txt wird der gesammte Inhalt, ausser die Zeilen mit VersionSignatur=X geschrieben (in ganz seltenen Fällen gibt es zwei solche Zeilen). Danach sollte aus dem Text wieder das INI-File erstellt werden. Das klappt soweit, aber leider gibt es
1. eine Art Titel in diesem Stil: "------------blabla.INI"
2. wird trotzt dem Befehl "echo j¦ del ausgabe.txt" diese Auslagerungs-Datei nicht gelöscht.

Könnt Ihr einem Jungspund in der Informatik bitte helfen?

Hier das Batch und die Ausgaben:

Das BATCH-File:
@echo off
set /p heim_name="Bitte geben Sie die Heim-Nummer an: "
echo.

set /p benutzer_name="Bitte geben Sie den Benutzer-Name an: "

CD C:\daten\%heim_name%\user\%benutzer_name%\WINDOWS

FIND /V "VersionSignatur" blabla.INI > ausgabe.txt

echo j¦ del blabla.ini

FIND /V "----" ausgabe.txt > blabla.INI

echo j¦ del ausgabe.txt

PAUSE


Das INI-File vor der Ausgabe(das erste Zeile etc. sind Platzhalter für die anderen Einträge):
erste Zeile
zweite Zeile
VersionSignatur=2
vierte Zeile
fünfte Zeile
sechste Zeile
siebte Zeile
VersionSignatur64=4
neunte Zeile
DAS ENDE


Das INI-File nach der Ausgabe:
---------- AUSGABE.TXT

erste Zeile
zweite Zeile
vierte Zeile
fünfte Zeile
sechste Zeile
siebte Zeile
neunte Zeile
DAS ENDE


Die nicht löschbare Datei ausgabe.txt:
---------- BLABLA.INI
erste Zeile
zweite Zeile
vierte Zeile
fünfte Zeile
sechste Zeile
siebte Zeile
neunte Zeile
DAS ENDE


Wie Ihr seht, werden zwar im Grunde die richtigen Zeilen gelöscht, doch jedesmal wird ein Zeilenumbruch eingefügt. Das wäre ja nicht tragisch, doch es sollte ja eine richtige Lösung sein, und der Grund ist ja nicht, dass man dann wieder von Hand nachkorrigieren muss. :-)
Ausserdem ist es mühsam, wenn man mal in das File schauen muss und dann zuerst mal 100 leere Zeilen runterscrollt.

Bitte habt Verständnis, das ich aus Datenschutzrechtlichen Gründen keine richtigen Betriebsnummern und Benutzer-Namen nehmen kann, der Kern bleibt ja derselbe.

Ausserdem könnt Ihr euch denken, dass ich im Geschäft nicht irgendwelche Batch-Erweiterungen, Programme etc. installieren kann oder überhaupt darf. eine reine-Batch- oder VBS-Lösung wäre also klar von Vorteil!

Ich hoffe, ich habe mein Problem gut beschrieben.

Ich danke euch für eure Hilfe!

Ivan

Dieser Beitrag wurde von Ludix bearbeitet: 31. März 2010 - 19:23

0

Anzeige



#2 Mitglied ist offline   Ludix 

  • Gruppe: Mitglieder
  • Beiträge: 8
  • Beigetreten: 20. Januar 10
  • Reputation: 0

  geschrieben 13. April 2010 - 12:05

Hallo Jungs

Kommt schon, jemand kann mir sicher helfen. Ihr hackt doch die grössten Codes zusammen, jemand kann mir sicher einen kleinen Tipp geben :-)

Wenn etwas unklar ist, dann fragt bitte!

Ivan

Dieser Beitrag wurde von Ludix bearbeitet: 13. April 2010 - 12:05

0

#3 Mitglied ist offline   hoschen 

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

geschrieben 13. April 2010 - 12:49

bau diese Zeile ein:

FIND /V /I "----" ausgabe.txt > blabla.INI

also komplett:

@echo off
set /p heim_name="Bitte geben Sie die Heim-Nummer an: "
echo.

set /p benutzer_name="Bitte geben Sie den Benutzer-Name an: "

CD C:\daten\%heim_name%\user\%benutzer_name%\WINDOWS

ren blabla.ini text.txt

FIND /V "VersionSignatur" text.txt | find /V /I "----" > blabla.ini

PAUSE

Dieser Beitrag wurde von hoschen bearbeitet: 13. April 2010 - 12:55

0

#4 Mitglied ist offline   007Burner 

  • Gruppe: aktive Mitglieder
  • Beiträge: 35
  • Beigetreten: 10. April 10
  • Reputation: 0

geschrieben 13. April 2010 - 12:59

Wie wäre es mit

@echo off
set /p heim_name="Bitte geben Sie die Heim-Nummer an: "
echo.
echo.
set /p benutzer_name="Bitte geben Sie den Benutzer-Name an: "

CD C:\daten\%heim_name%\user\%benutzer_name%\WINDOWS

for /f "delims=:" %%i in ('findstr /b /i /v "VersionSignatur" "C:\daten\%heim_name%\user\%benutzer_name%\WINDOWS\blahblah.ini"') do echo %%i>>"C:\daten\%heim_name%\user\%benutzer_name%\WINDOWS\neu.ini"

del C:\daten\%heim_name%\user\%benutzer_name%\WINDOWS\blahblah.ini
echo.
ren C:\daten\%heim_name%\user\%benutzer_name%\WINDOWS\neu.ini blahblah.ini
echo.
echo.
echo print  neue VersionsSignatur.ini  erstellt !


LG
0

#5 Mitglied ist offline   Ludix 

  • Gruppe: Mitglieder
  • Beiträge: 8
  • Beigetreten: 20. Januar 10
  • Reputation: 0

geschrieben 10. Mai 2010 - 14:46

Hey 007burner

Danke, deins ist Perfekt!

hoschen, deines war fast gleich, leider immer noch eine Leerzeile am Anfang des Batchs!

Ihr habt mir echt geholfen!

Ludix
0

Thema verteilen:


Seite 1 von 1

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