CMD Befehle über Powershell aufrufen
Hallo Community
Ich habe eine cmd Datei, welche ich über Powershell aufrufen soll. Leider funktioniert der Aufruf nicht ganz. Irgendwie findet das Program eine DLL nicht. Ich vermute, dass meine Variablen nicht korrekt sind. Unten ein Auszug aus dem Batch sowie Powershell Skript. Was ist falsch im Powershell Skript?
Unter cmd sieht das Ganze folgendermassen aus:
Batch:
@echo OFF
PUSHD %CD%
SET PATH=%CD%\Oracle\ORACLE10\BIN;%PATH%
SET TNS_ADMIN=%CD%\Oracle\NETWORK\ADMIN
SET NLS_LANG=GERMAN_GERMANY.WE8ISO8859P1
SET ORACLE_HOME=%CD%\ORACLE\ORACLE10
CD BIN
start "" RECGugus.exe
Powershell:
*
## VARIABLEN definieren
$WorkDir = "$env:ProgramW6432\Gugus\AS01\BICIS"
$AddedLocation ="$WorkDir\Oracle\ORACLE10\BIN"
$Reg = "Registry::HKLM\System\CurrentControlSet\Control\Session Manager\Environment"
$OldPath = (Get-ItemProperty -Path "$Reg" -Name PATH).Path
$NewPath= $OldPath + ’;’ + $AddedLocation
Set-ItemProperty -Path "$Reg" -Name PATH –Value $NewPath
$env:TNS_Admin = "$WorkDir\Oracle\NETWORK\ADMIN"
$env:NLS_LANG = "GERMAN_GERMANY.WE8ISO8859P1"
$env:ORACLE_HOME = "$WorkDir\ORACLE\ORACLE10"
##
##
##
## FUNKTIONEN definieren
##
##
## Ausführen des Programmes
Set-Location -Path $WorkDir\Bin
Start-Process RECGugus.exe
Im voraus vielen Dank für Eure Hilfe
Ich habe eine cmd Datei, welche ich über Powershell aufrufen soll. Leider funktioniert der Aufruf nicht ganz. Irgendwie findet das Program eine DLL nicht. Ich vermute, dass meine Variablen nicht korrekt sind. Unten ein Auszug aus dem Batch sowie Powershell Skript. Was ist falsch im Powershell Skript?
Unter cmd sieht das Ganze folgendermassen aus:
Batch:
@echo OFF
PUSHD %CD%
SET PATH=%CD%\Oracle\ORACLE10\BIN;%PATH%
SET TNS_ADMIN=%CD%\Oracle\NETWORK\ADMIN
SET NLS_LANG=GERMAN_GERMANY.WE8ISO8859P1
SET ORACLE_HOME=%CD%\ORACLE\ORACLE10
CD BIN
start "" RECGugus.exe
Powershell:
*
## VARIABLEN definieren
$WorkDir = "$env:ProgramW6432\Gugus\AS01\BICIS"
$AddedLocation ="$WorkDir\Oracle\ORACLE10\BIN"
$Reg = "Registry::HKLM\System\CurrentControlSet\Control\Session Manager\Environment"
$OldPath = (Get-ItemProperty -Path "$Reg" -Name PATH).Path
$NewPath= $OldPath + ’;’ + $AddedLocation
Set-ItemProperty -Path "$Reg" -Name PATH –Value $NewPath
$env:TNS_Admin = "$WorkDir\Oracle\NETWORK\ADMIN"
$env:NLS_LANG = "GERMAN_GERMANY.WE8ISO8859P1"
$env:ORACLE_HOME = "$WorkDir\ORACLE\ORACLE10"
##
##
##
## FUNKTIONEN definieren
##
##
## Ausführen des Programmes
Set-Location -Path $WorkDir\Bin
Start-Process RECGugus.exe
Im voraus vielen Dank für Eure Hilfe
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 640973
Url: https://administrator.de/contentid/640973
Ausgedruckt am: 19.11.2024 um 06:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo,
Sicher das du CD verwenden willst (Change Directory)?
Und was genau sagt deine uns vorenthaltene Fehlermeldung?
Gruß,
Peter
Sicher das du CD verwenden willst (Change Directory)?
SET PATH=%CD%\Oracle\ORACLE10\BIN;%PATH%
Wie sieht dein Path vorher aus und wie nach deinen änderungen?Und was genau sagt deine uns vorenthaltene Fehlermeldung?
Gruß,
Peter
Moin,
er will - wenn ich das richtig verstehe - die Batch in Powershell transferieren und nicht - wie er geschrieben hat - aus Powershell aufrufen.
Mir kommt insbesondere die Zeile im Powershell Script:
etwas komisch vor, Der Oracle DB-Pfad liegt doch sicher nicht unterhalb des Programmverzeichnisses von "Gugus" (was auch immer das ist) $WorkDir? Vermutlich eher in "Programme"\Oracle\ORACLE10\BIN ...?
In der Batch holt er sich mit "PUSHD %CD%" einfach nur den Pfad aus dem die Batch gestartet wurde, vermutlich von einer DVD oder einem Stick.
Gruß
cykes
er will - wenn ich das richtig verstehe - die Batch in Powershell transferieren und nicht - wie er geschrieben hat - aus Powershell aufrufen.
Mir kommt insbesondere die Zeile im Powershell Script:
$AddedLocation ="$WorkDir\Oracle\ORACLE10\BIN"
In der Batch holt er sich mit "PUSHD %CD%" einfach nur den Pfad aus dem die Batch gestartet wurde, vermutlich von einer DVD oder einem Stick.
Gruß
cykes