ralfkausk
Goto Top

Inhalt einer Datei mit batch script tauschen - find and replace content in batch

Hallo zusammen, ich brauche mal wieder die Hilfe der Gemeinschaft ...

Ich muss folgendes realisieren

Es gibt eine Vorlagendatei in der für jeden einzelnen Anwender drei Platzhalter getauscht werden müssen.
Das Skript fragt den Benutzernamen ab, speichert ihn in eine Variable und fügt diesen Wert dann in die neue Datei ein.
Anschließend muss die Datei von Outlook importiert werden

Es scheitert im Moment daran das ich keinen blassen Dunst habe wie ich das mit DOS Befehlen umsetzen kann.
Mit der Powershell und/oder UNIX Werkzeugen ist es kein Problem, aber DOS ?!?

Mein script sieht bisher folgendermaßen aus

:STARTHERE
@echo off

REM SETTING SOME VARIABLES
set OLEXE="C:\Program Files (x86)\Microsoft Office\Office14\outlook.exe"  
set SOURCE="W:\Public\datatransfer\helpdesk\outlook-getrag\2nd-Profile.txt"  
set TARGET="C:\temp\2nd-Profile.prf"  
set G=USERID
set /p UNAME=Please enter your username:

copy %SOURCE% %TARGET%

FIND and REPLACE
an dieser Stelle soll der Platzhalter USERID gegen den vom Anwender eingegebenen ersetzt werden
(%G% gegen %UNAME% tauschen)

REM ADDING THE OUTLOOK PROFILE
%OLEXE% /importprf %TARGET%

exit

Content-ID: 186415

Url: https://administrator.de/forum/inhalt-einer-datei-mit-batch-script-tauschen-find-and-replace-content-in-batch-186415.html

Ausgedruckt am: 09.01.2025 um 00:01 Uhr

DerWoWusste
DerWoWusste 13.06.2012 aktualisiert um 16:00:27 Uhr
Goto Top
Hi.

Zwei Tipps:
1) PRF-Dateien kennen die Variable %username% - reicht das nicht?
2) Für's Suchen und ersetzen von der Kommandozeile nehme ich dossr.exe. http://www.google.de/#hl=de&site=&source=hp&q=dossr.exe& ...
Auch mit sed.exe würde das gehen.
ralfkausk
ralfkausk 13.06.2012 um 16:06:21 Uhr
Goto Top
@DerWoWusste:

zu1) grundsätzlich ja, aber in diesem Fall nein
in diesem Fall geht es um eine neue ID und die entspricht nicht der mit der der Andender angemeldet ist, leider

zu2) Ich bin eigentlich für so was zu haben, aber in diesem falle gilt: nur mit Bordmitteln
(normalerweise bediene ich mich bei z.B. den Unix Tools und benutze den sed für so was)
miraaa
miraaa 13.06.2012 um 18:38:43 Uhr
Goto Top
Hallo rkujadt,
konntest du dein Problem schon lösen?
Ich hab nämlich leider genau das gleiche Problem und versuche schon seit Stunden erfolglos nach einer Lösung. face-sad
-> Ich bin für jede Hilfe dankbar!!
Lg Mira
DerWoWusste
DerWoWusste 14.06.2012 aktualisiert um 12:52:27 Uhr
Goto Top
Ich habe selten Verständnis für die Diktion "nur mit Bordmitteln". Ich habe ein Kommandozeilenprogramm empfohlen, dass auf den Rechnern nichts verändert und keiner Installation bedarf. Es muss nicht einmal auf den Rechnern selbst liegen.
miraaa
miraaa 14.06.2012 um 12:34:14 Uhr
Goto Top
Na gut,
ich denke, dass ich es mal mit Powershell versuchen werde...

Falls dennoch jemand einen Vorschlag für eine Lösung mit der Windows cmd hat, bitte posten!!

DANKE!!
Lg Mira
ralfkausk
ralfkausk 14.06.2012 um 14:37:50 Uhr
Goto Top
@DerWoWusste: mag ja sein das Du was dagegen hast aber das tut hier eigentlich nix zur Sache.
Mein Arbeitgegeber sieht das offensichtlich etwas anders als Du, darum die Aussage: nur mit Bordmittel.
Wie ich schon geschrieben hatte benutze ich sonst wenn möglich gerne andere Proggis um mir das Leben einfacher zu machen, aber dasist hier NICHT möglich.

@miraaa: bei der Powershell kann ich Dir evtl. sogar weiterhelfen
Das Skript ändert
1. den Proxy auf einen neuen Wert
2. liest eine Datei ein, manipuliert diese und schreibt eine neue und
3. startet Outlook um diese zu importieren

Der für dich interessante Teil ist in dem Abschnitt "ADDING THE OUTLOOK PROFILE"
Die Datei wird eingelesen, dann werden alle Platzhalter (in diesem Fall USERID) gegen einen neuen Wert (der mit "$UNAME = read-host "Please enter your username:"" generiert wird) ausgetauscht und in einen neue Datei auf dem Rechner abgelegt (Set-Content $TARGET).
Der Rest ist für dich wahrscheinlich nicht nötig, könnte aber interessant sein.
Hoffe das hilft dir.

# This script will change our IE proxy and create a new Outlook profile
# The Outlook profile will be attached to your Default profile

# SETTING SOME VARIABLES
$OLEXE = "C:\Program Files (x86)\Microsoft Office\Office14\outlook.exe"  
$SOURCE = "W:\Public\datatransfer\helpdesk\outlook\2nd-Profile.txt"  
$TARGET = "C:\temp\2nd-Profile.prf"  
$UNAME = read-host "Please enter your username:"  

# CHANGING THE IE8 PROXY SETTING
write-host "Changing the IE proxy to: http://browsers.xxx.com/ie/proxy.js"  
set-itemproperty "hkcu:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -name AutoConfigURL -Value http://browsers.xxx.com/ie/proxy.js  
#write-host "Please check if new value is correct ..." 
#get-itemproperty "hkcu:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -name AutoConfigURL 

# ADDING THE OUTLOOK PROFILE
(Get-Content $SOURCE) | Foreach-Object {$_ -replace "USERID", $UNAME} | Set-Content $TARGET  
write-host "Creating new Outlook profile ..."  
& $OLEXE /importprf $TARGET
miraaa
miraaa 23.07.2012, aktualisiert am 27.07.2012 um 13:34:02 Uhr
Goto Top
Danke für deine Hilfe, hab alles super hinbekommen. face-smile

Liebe Grüße und schönes Wochenende,
Mira