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

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

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

Member: Pjordorf
Pjordorf Jan 15, 2021 at 15:28:47 (UTC)
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
Member: cykes
cykes Jan 16, 2021 updated at 04:39:23 (UTC)
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