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-Key: 186415

Url: https://administrator.de/contentid/186415

Printed on: April 24, 2024 at 16:04 o'clock

Member: DerWoWusste
DerWoWusste Jun 13, 2012 updated at 14:00:27 (UTC)
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.
Member: ralfkausk
ralfkausk Jun 13, 2012 at 14:06:21 (UTC)
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)
Member: miraaa
miraaa Jun 13, 2012 at 16:38:43 (UTC)
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
Member: DerWoWusste
DerWoWusste Jun 14, 2012 updated at 10:52:27 (UTC)
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.
Member: miraaa
miraaa Jun 14, 2012 at 10:34:14 (UTC)
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
Member: ralfkausk
ralfkausk Jun 14, 2012 at 12:37:50 (UTC)
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
Member: miraaa
miraaa Jul 23, 2012, updated at Jul 27, 2012 at 11:34:02 (UTC)
Goto Top
Danke für deine Hilfe, hab alles super hinbekommen. face-smile

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