-1
私はいくつかの特定のpropertie.filesの行の多くを置き換えるスクリプトを作成しています。今はほとんど終わりましたが、テストなどのためにログを作成する必要がありますが、アイデアはありません。私は関数やこのようなもののような多くのオプションを探しましたが、私はそれを取得しません。だから私はあなたの助けが必要です。PowerShellでログを作成する
アマチュアのおかげで申し訳ありません!
#Config.ps1 laden
. \\imbo\imbo$\03_Applikationen\03_27_customizing_sapbo_script\Umsetzung\config.ps1
#-----------------------------Input-------------------------------------------------------
#Abfrage für die Umgebung
$env = Read-Host -Prompt "@PROD, @INT, @DEV, @ADM, @PRD_EXT, @INT_EXT "
#-----------------------------Copy-Jobs---------------------------------------------------
#Property-Files kopieren
Copy-Item -Path $propertyfiles -Destination $1war1, $1war2
#Bilder kopieren
Copy-Item -Path $sap_logo -Destination
Copy-Item -Path $post_logo -Destination
Copy-Item -Path $images_src -Destination $images_dst
#Custom kopieren
Copy-Item -Path $custom_src -Destination $custom_dst1, $custom_dst2
#-----------------------------WAR-Files---------------------------------------------------
#WAR-Files
ForEach($Datei in Get-ChildItem $1war1, $1war2, $2war1, $2war2, $3war1, $3war2, $4war1, $4war2, $5war1, $5war2, $6war1, $6war2, $7war1, $7war2, $8war1, $8war2, $9war1, $9war2, $cluster1, $cluster2) {
# Get-Content liest eine Texdatei oder mehrere Zeile für Zeile ein
# in der Variablen $Zeilen steht deshalb eine Liste von Zeilen (Array)
$Zeilen = Get-Content -Path $Datei.Fullname
# Die Datei befindet sich nun Komplett im Speicher (in der Variablen $Zeilen)
# deshalb können wir die Datei überschreiben
# Zeilen Zähler, wird nur gebraucht um die erste Zeile zu erkennen
$ZeilenZähler = 1
# jede Zeile abarbeiten
foreach($Zeile in $Zeilen)
{
# Hier findet meine Dateiveränderung statt.
# Beispiel: Alle Buchstaben 'a' durch den Buchstaben 'o' ersetzen
#.+ ist dazu da um dem Programm zu sagen dass hier eigentlich noch mehr kommt aber dies nicht bekannt ist
#\d+ steht für Ziffern aber man weiss auch hier nicht welche
if($env -eq '@PROD') {
#global.properties
$Zeile = $Zeile -replace "max.tree.children.threshold=\d+","max.tree.children.threshold=300"
$Zeile = $Zeile -replace "idm.princ=.+/.+","idm.princ=$princp"
$Zeile = $Zeile -replace "idm.keytab=D:/sso/.+.keytab","idm.keytab=D:/sso/$princps.keytab"
#BIlaunchpad.propertiers, CmcApp.properties, OpenDocument.properties
$Zeile = $Zeile -replace "cms.default=.+","cms.default=$env"
#Session-Timeouts
$Zeile = $Zeile -replace "session-timeout>\d+</session-timeout>","session-timeout>120</session-timeout>"
#Kerberos-Filter aktivieren
$Zeile = $Zeile -replace "<!--123",""
$Zeile = $Zeile -replace "321-->",""
}
elseif($env -eq '@INT') {
#global.properties
$Zeile = $Zeile -replace "max.tree.children.threshold=\d+","max.tree.children.threshold=300"
$Zeile = $Zeile -replace "idm.princ=.+/.+","idm.princ=$princi"
$Zeile = $Zeile -replace "idm.keytab=D:/sso/.+.keytab","idm.keytab=D:/sso/$princis.keytab"
#BIlaunchpad.propertiers, CmcApp.properties, OpenDocument.properties
$Zeile = $Zeile -replace "cms.default=.+","cms.default=$env"
#Session-Timeouts
$Zeile = $Zeile -replace "session-timeout>\d+</session-timeout>","session-timeout>120</session-timeout>"
#Kerberos-Filter aktivieren
$Zeile = $Zeile -replace "<!--123",""
$Zeile = $Zeile -replace "321-->",""
}
elseif($env -eq '@DEV') {
#global.properties
$Zeile = $Zeile -replace "max.tree.children.threshold=\d+","max.tree.children.threshold=300"
$Zeile = $Zeile -replace "idm.princ=.+/.+","idm.princ=$princd"
$Zeile = $Zeile -replace "idm.keytab=D:/sso/.+.keytab","idm.keytab=D:/sso/$princds.keytab"
#BIlaunchpad.propertiers, CmcApp.properties, OpenDocument.properties
$Zeile = $Zeile -replace "cms.default=.+","cms.default=$env"
#Session-Timeouts
$Zeile = $Zeile -replace "session-timeout>\d+</session-timeout>","session-timeout>120</session-timeout>"
#Kerberos-Filter aktivieren
$Zeile = $Zeile -replace "<!--123",""
$Zeile = $Zeile -replace "321-->",""
}
elseif($env -eq '@ADM') {
#global.properties
$Zeile = $Zeile -replace "max.tree.children.threshold=\d+","max.tree.children.threshold=300"
$Zeile = $Zeile -replace "idm.princ=.+/.+","idm.princ=$princa"
$Zeile = $Zeile -replace "idm.keytab=D:/sso/.+.keytab","idm.keytab=D:/sso/$princas.keytab"
#BIlaunchpad.propertiers, CmcApp.properties, OpenDocument.properties
$Zeile = $Zeile -replace "cms.default=.+","cms.default=$env"
#Session-Timeouts
$Zeile = $Zeile -replace "session-timeout>\d+</session-timeout>","session-timeout>120</session-timeout>"
#Kerberos-Filter aktivieren
$Zeile = $Zeile -replace "<!--123",""
$Zeile = $Zeile -replace "321-->",""
}
elseif($env -eq '@PRD_EXT') {
#global.properties
$Zeile = $Zeile -replace "max.tree.children.threshold=\d+","max.tree.children.threshold=300"
$Zeile = $Zeile -replace "idm.princ=.+/.+","idm.princ=$princpe"
$Zeile = $Zeile -replace "idm.keytab=D:/sso/.+.keytab","idm.keytab=D:/sso/$princpes.keytab"
#BIlaunchpad.propertiers, CmcApp.properties, OpenDocument.properties
$Zeile = $Zeile -replace "cms.default=.+","cms.default=$princpesrv"
#Session-Timeouts
$Zeile = $Zeile -replace "session-timeout>\d+</session-timeout>","session-timeout>120</session-timeout>"
#Kerberos-Filter aktivieren
$Zeile = $Zeile -replace "<!--123",""
$Zeile = $Zeile -replace "321-->",""
#cms.visible BIlaunchpad.properties und CmcApp.properties
$Zeile = $Zeile -replace "cms.visible=.+","cms.visible=false"
#authentification.visible BIlaunchpad.properties und CmcApp.properties
$Zeile = $Zeile -replace "authentication.visible=.+","authentication.visible=false"
#authentification.default BIlaunchpad.properties und CmcApp.properties
$Zeile = $Zeile -replace "authentification.default=.+","authentification.default=secEnterprise"
#PostLogout_html kopieren
Copy-Item -Path $logout_src -Destination $logout_dst
}
elseif($env -eq '@INT_EXT') {
#global.properties
$Zeile = $Zeile -replace "max.tree.children.threshold=\d+","max.tree.children.threshold=300"
$Zeile = $Zeile -replace "idm.princ=.+/.+","idm.princ=$princie"
$Zeile = $Zeile -replace "idm.keytab=D:/sso/.+.keytab","idm.keytab=D:/sso/$princies.keytab"
#BIlaunchpad.propertiers, CmcApp.properties, OpenDocument.properties
$Zeile = $Zeile -replace "cms.default=.+","cms.default=$princiesrv"
#Session-Timeouts
$Zeile = $Zeile -replace "session-timeout>\d+</session-timeout>","session-timeout>120</session-timeout>"
#Kerberos-Filter aktivieren
$Zeile = $Zeile -replace "<!--123",""
$Zeile = $Zeile -replace "321-->",""
#cms.visible BIlaunchpad.properties und CmcApp.properties
$Zeile = $Zeile -replace "cms.visible=.+","cms.visible=false"
#authentification.visible BIlaunchpad.properties und CmcApp.properties
$Zeile = $Zeile -replace "authentication.visible=.+","authentication.visible=false"
#authentification.default BIlaunchpad.properties und CmcApp.properties
$Zeile = $Zeile -replace "authentification.default=.+","authentification.default=secEnterprise"
#PostLogout_html kopieren
Copy-Item -Path $logout_src -Destination $logout_dst
}
# Nur bei der ersten Zeile wird die Alte Datei ("leer") neu angelegt (überschrieben)!
If($ZeilenZähler -eq 1) {
Out-File -FilePath $Datei.Fullname -InputObject $Zeile -Force
}
Else {
# jede weitere Zeile an die neue erstellte Datei anhängen (Parameter Append)
Out-File -FilePath $Datei.Fullname -InputObject $Zeile -Force -Append
}
# Zeilenzähler hochsetzen
$ZeilenZähler++
}
}
同じファイルにする必要がありますか、それともスクリプトで読み込むだけですか? –
動作しますが、どのようにエラーを検出する必要がありますか?そして、私はそのエラーや警告や情報をどうすればいいのですか?また、Foreachループに配置すると、ログファイルに同じ行がたくさんあります。これを一度だけ書き、さらに進んでいくにはどうすればいいですか? –
この機能は別のファイルに保存できます。何をする必要があるのですが、そのファイルを一度実行するだけで、特定のセッションのログを保存するための 'write-Host'コマンドレットが作成されます。 –