ralus67
Goto Top

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

Content-ID: 640973

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

Ausgedruckt am: 19.11.2024 um 06:11 Uhr

Pjordorf
Pjordorf 15.01.2021 um 16:28:47 Uhr
Goto Top
Hallo,

Zitat von @Ralus67:
PUSHD %CD%
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
cykes
cykes 16.01.2021 aktualisiert um 05:39:23 Uhr
Goto Top
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:
$AddedLocation ="$WorkDir\Oracle\ORACLE10\BIN"  
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