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

Werte in einer Datei in verschiedenen Pfaden auslesen und ersetzen

Frage Entwicklung Batch & Shell

Mitglied: connecthor

connecthor (Level 1) - Jetzt verbinden

08.07.2010 um 07:25 Uhr, 2869 Aufrufe, 9 Kommentare

Guten Morgen,

ich beziehe mich auf den beitrag http://www.administrator.de/index.php?content=144191 - - etwas weiter am ende des beitrages

das problem ist das folgende:

in einer INI-datei stehen pfade zu verschiedenen ordnern, in denen sich eine bestimmte datei befindet, in der ein wert (name) gesucht und ersetzt werden soll. in dem beitrag oben wurde das schon im ansatz behandelt. doch leider gelingt es mir nur entweder den ersten, Xten oder letzten gefundenen pfad in der INI-datei zu bearbeiten. bearbeitet müssen aber alle eventuell gefundenen pfade werden.

ihr könnt bestimmt helfen.

Danke
Mitglied: BigWim
08.07.2010 um 08:40 Uhr
Moin Moin,

doch leider gelingt es mir nur entweder den ersten, Xten oder letzten gefundenen pfad in der INI-datei zu bearbeiten
ich misch mal so als Ahnungsloser mit und würde in diesem Fall folgendes empfehlen.

Nehme Deine funktioniere Batch-Datei und bau eine weitere Schleife oder Aufruf drumherum, die Deine Batch solange aufruft, bis der veralterte Pfad nicht mehr gefunden wird.

Markus
Bitte warten ..
Mitglied: LotPings
08.07.2010 um 16:33 Uhr
Hallo Conneccthor,

dein letztes Feedback in obigem Beitrag war das nicht hilfreiche "ähmm... geht nicht. "

In meine letzte Batch-version könntest du ja auch mal Echos zur Abgrenzung einfügen wann was nicht funktioniert.
Es ist ein bisschen viel verlangt, wenn wir deine Umgebung möglichst genau nachstellen sollen.

Gruß
LotPings
Bitte warten ..
Mitglied: connecthor
12.07.2010 um 17:49 Uhr
guten heißen tag,

also, ich hab ein paar echos mit eingefügt um zu sehen ob das was ich habe funktioniert.
ergebniss:
01.
Nicht gefunden: "\prefs.js" 
02.
Nicht gefunden: "\prefs.js" 
03.
Nicht gefunden: "\prefs.js" 
04.
"C:\del\23n8d32.default\prefs.js" 
05.
C:\del\23n8d32.default\prefs.NEW 
06.
Nicht gefunden: "\prefs.js" 
07.
Nicht gefunden: "\prefs.js" 
08.
Nicht gefunden: "\prefs.js" 
09.
"C:\del\2nfw2oei.default\prefs.js" 
10.
C:\del\2nfw2oei.default\prefs.NEW 
11.
Nicht gefunden: "\prefs.js" 
12.
Nicht gefunden: "\prefs.js" 
13.
Nicht gefunden: "\prefs.js" 
14.
"C:\del\28nf2bg2.default\prefs.js" 
15.
C:\del\28nf2bg2.default\prefs.NEW
also irgend wie findet er die pfade, aber dann macht er nichts.

die datei sieht folgendermaßen aus:
01.
echo Beginne! 
02.
Echo Bitte warten! 
03.
set "Datei=%js%\prefs.js" 
04.
set "Von=username@domain-gmbh.de" 
05.
set "Nach=username@domain.de" 
06.
 
07.
For /f "UseBackQ Tokens=1,* Delims==" %%A in (%Ini%) Do Call :ProcessFile "%%B\prefs.js"  
08.
 
09.
Goto :Eof  
10.
:ProcessFile  
11.
If Not Exist %1 Echo Nicht gefunden: %1 & Goto :Eof  
12.
echo %1 
13.
Set "PrefNew=%~dpn1.NEW"  
14.
echo %PrefNEW% 
15.
 
16.
Type NUL >"%PrefNEW%"  
17.
for /f "usebackq delims=" %%k in (%1) do set "L=%%k" & set "L=!L:%Von%=%Nach%!"& >>"%PrefNEW%" echo.!L!
ich denke es ist bloß ne kleinigkeit...
Bitte warten ..
Mitglied: LotPings
12.07.2010 um 18:04 Uhr
Das ist wohl mehr als eine Kleinigkeit,

  • ist irgendwo ein Befehl SetLocal EnableDelayedExpansion ?
  • woher kommt %Ini%, was steht drin ?

Zeile 17 schreibst du besser so:
01.
for /f "usebackq delims=" %%k in (%1) do set "L=%%k" &  >>"%PrefNEW%" echo.!L:%Von%=%Nach%!
Gruß
LotPings
Bitte warten ..
Mitglied: connecthor
13.07.2010 um 07:19 Uhr
guten morgen,

ja, das SetLocal EnableDelayedExpansion steht am anfang der batch.
das %ini% beschreibt nur den pfad zur einstellungsdatei in der die pfade stehen, die er auslesen soll, wo dann die jeweils zu bearbeitende PREFS.JS steht.
Bitte warten ..
Mitglied: LotPings
13.07.2010 um 08:57 Uhr
Zitat von connecthor:
ja, das SetLocal EnableDelayedExpansion steht am anfang der batch.
das %ini% beschreibt nur den pfad zur einstellungsdatei in der die pfade stehen, die er auslesen soll, wo dann die jeweils zu
bearbeitende PREFS.JS steht.
Im Ursprungsposting hattest du doch schon einen Befehl, der nicht den kompletten Inhalt der %Ini% sondern nur die Zeilen die mit "path=" beginnen, verarbeitet hat.

Was steht denn z.Bsp. in der Datei "C:\del\28nf2bg2.default\prefs.NEW" drin?

Gruß
LotPings
Bitte warten ..
Mitglied: connecthor
14.07.2010 um 17:41 Uhr
das im ursprungsposting hast du schon mit dem

For /f "UseBackQ Tokens=1,* Delims==" %%A in (%Ini%) Do Call :ProcessFile "%%B\prefs.js"

abgehandelt.

die profiles.ini sieht ggf. folgendermaßen aus:

01.
[Profile0] 
02.
Name=default 
03.
IsRelative=0 
04.
Path=C:\del\23n8d32.default 
05.
 
06.
[Profile1] 
07.
Name=bearbeitung 
08.
IsRelative=0 
09.
Path=H:\email 
10.
Default=1
in der prefs.NEW steht dann ja der geänderte wert drin, den ich mit %von% nach %nach% übergebe.

ich bastel mal noch ein wenig... und danach teste ich. und dann melde ich mich. wenn euch noch was einfällt... immer her damit.

danke
Bitte warten ..
Mitglied: LotPings
14.07.2010 um 17:49 Uhr
Zitat von connecthor:
das im ursprungsposting hast du schon mit dem

For /f "UseBackQ Tokens=1,* Delims==" %%A in (%Ini%) Do Call :ProcessFile "%%B\prefs.js"

abgehandelt.
Die war nicht gemeint sonder die Zeile wo statt nur %Ini% ein Findstr mit "path=" stand, die Logik dahinter solltest du inzwischen eigentlich begriffen haben.

Gruß
LotPings
Bitte warten ..
Mitglied: connecthor
30.07.2010 um 07:25 Uhr
so, getestet, geändert, getestet,geändert,getestet.... LÄUFT!!

das ganze sieht jetzt wie folgt aus:
01.
@echo off & SETLOCAL enabledelayedexpansion 
02.
taskkill /IM anwendung.exe 
03.
set "ini=c:\del\profiles.ini" 
04.
 
05.
cls 
06.
ECHO Bitte gib nun Deinen Vornamen und Nachnamen ein. 
07.
ECHO ACHTUNG! Bitte Umlaute (Ž™š) in AE OE oder UE (ae, oe,ue) schreiben. 
08.
ECHO Beispiel: Max Müller in Max Mueller ändern! 
09.
ECHO Eingaben bitte mit ENTER (RETURN) bestätigen! 
10.
echo. 
11.
set /p vorname="Bitte deinen Vornamen eingeben: " 
12.
echo. 
13.
set /p nachname="Bitte deinen Nachnamen eingeben: " 
14.
set benutzername=%vorname%.%nachname% 
15.
 
16.
 
17.
echo Beginne! 
18.
Echo Bitte warten! 
19.
set "Von=%benutzername%@domain-gmbh.de" 
20.
set "Nach=%benutzername%@domain.de" 
21.
set "t=%temp%\text.tmp" 
22.
 
23.
For /f "UseBackQ Tokens=1,* Delims==" %%A in (%Ini%) Do Call :ProcessFile "%%B\prefs.js"  
24.
 
25.
Goto :Eof  
26.
:ProcessFile  
27.
If Not Exist %1 Echo > nul & Goto :Eof  
28.
 
29.
if exist "%t%" del "%t%" 
30.
for /f "usebackq delims=" %%k in (%1) do (set "Line=%%k" & set Line=!Line:%Von%=%Nach%! & echo !Line!>>"%t%") 
31.
move /y "%t%" "%1" 
32.
 
33.
:exit

danke, bis zum nächsten mal
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Werte aus einer Tabelle ersetzen Werte aus einer anderen Tabelle
Frage von neotm1Datenbanken2 Kommentare

Hallo, ich versuche mit MSSQL eine Abfrage hinzubekommen, in der Werte Aus Tabelle1 Spalte2 in eine andere Tabelle schreibt, ...

Batch & Shell
Batch: In Quelldatei Wert aus Liste ersetzen und Datei speichern unter
gelöst Frage von MTB4everBatch & Shell2 Kommentare

Hallo, ich habe folgendes vor: Ich habe eine Quell Datei z.B. 0000.csv in dieser Datei steht in Zeile 1 ...

Batch & Shell
Wert in mehreren XML Dateien per Script ersetzen
gelöst Frage von PaketJockeyBatch & Shell5 Kommentare

Hallo zusammen, habe an meinem Logistik-Arbeitsplatz folgendes Problem: Wir bekommen täglich massig elektronische Lieferscheine als XML Dateien. Darin müsste ...

VB for Applications
Datei Name und Pfad auslesen mit FSO Objekt
gelöst Frage von Gimli3311VB for Applications3 Kommentare

Hallo Zusammen, ich möchte gerne den Dateinamen und den Pfad von der Datei jeweils in zwei Variablen speichern. Ich ...

Neue Wissensbeiträge
Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 2 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Sicherheit

Teamviewer Sessions können gekapert werden - Update tw. verfügbar

Information von sabines vor 4 TagenSicherheit6 Kommentare

In bestimmten Konstellationen können Teamviewer Sessions gekapert werden, wahrscheinlich aber ein recht unwahrscheinliches Szenario. Da der Teamviewer gerne für ...

Digitiales Fernsehen

Apple TV: Amazon Prime App ist verfügbar

Information von Frank vor 4 TagenDigitiales Fernsehen4 Kommentare

Die Amazon Prime Video App kann ab sofort auf einem Apple TV ab der 3 Generation installiert werden. Einfach ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Windows Server
Server 2012 über Eingabeaufforderung devmgmt.msc geht nicht
gelöst Frage von achim222Windows Server9 Kommentare

Hallo, ich habe hier einen Server 2012 der im Reparaturmodus startet. Es liegt an einem falschen VirtIO Treiber für ...