.bat & .sh Code ausführen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Michael

Hallo,
ich habe folgendes Problem:

Ich möchte Code der in einer .bat und .sh Datei über Python ausführen.

Kann mir jemand sagen wie das funktioniert?

Gruss Michael
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

In einer .bat Datei stehen Windows Batch Befehle drin und in einer .sh Datei ist es oft Bash-Script. Wie willst du das durch den Python-Interpreter ausführen? Der kann nur Python!

Oder meinst du, dass du diese Dateien ausführen willst (von cmd/bash)? Dann ist os.system() was für dich.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Michael

Leonidas hat geschrieben:In einer .bat Datei stehen Windows Batch Befehle drin und in einer .sh Datei ist es oft Bash-Script. Wie willst du das durch den Python-Interpreter ausführen? Der kann nur Python!

Oder meinst du, dass du diese Dateien ausführen willst (von cmd/bash)? Dann ist os.system() was für dich.
Ich habe da ein Script mit 3 Variablen in einer .bat bzw. .sh Datei. Die wären LogPfad, ExportPfad und Oracle Pfad.

Da es für Kunden immer ein gefummle ist die Scripte richtig einzustellen habe ich nun eine Eingabe gebastelt.

Nun möchste ich den Code der in der .bat bzw. .sh Datei steht mit den über die Console eingegebenen Werten ausführen.

Mein problem besteht darin, das ich nicht weis wie ich in Python den Code ausführen kann.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Du kannst folgendes machen:

Das Script sieht in etwa so aus (nur mit ZSH getestet):

Code: Alles auswählen

#!/bin/bash
LogPfad=$1
ExportPfad=$2
OraclePfad=$3

# irgendwas mit den Variablen machen
echo $LogPfad
echo $ExportPfad
echo $OraclePfad
Und dann im Python-Programm:

Code: Alles auswählen

import os
pfad = '/usr/local/share/'
os.system("./script.sh %s %s %s" % (pfad, pfad, pfad))
Ich hoffe du hast das Prinzip verstanden. Dem Script werden die Variablen über die Kommandozeile übergeben.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
henning
User
Beiträge: 274
Registriert: Dienstag 26. Juli 2005, 18:37

Leonidas hat geschrieben: Das Script sieht in etwa so aus (nur mit ZSH getestet):
Sollte egal sein, du schreibst ja am Anfang

Code: Alles auswählen

#!/bin/bash
Ab da macht ja eben die Bash weiter also hat die zsh da schon nix mehr mit zu tun.

Ich würds auch in jedem Fall mit so 'ner Parameterübergabe machen wenns irgendwie geht.
Wenns sich gar nicht vermeiden lässt, kann man noch in dem bash/batch-skript von python aus rumschreiben bevor mans ausführt, sollte aber in dem Fall total unnötig sein (ausserdem wärs da wahrscheinlich bald weniger aufwendig, die scripts nach python zu portiern ,-))
Michael

Also so sehen die Scripte aus:

Code: Alles auswählen

set ORACLE_SID=[b]WG81[/b]
set NLS_LANG=american_america.we8iso8859p1

[b]d:\oracle\Ora81\bin\exp [/b][b]User/PW[/b] parfile=[b]d:\DB-Scripts.NT\export.par[/b]
USERID=User/PW
BUFFER=10000000
FILE=d:\backup\exp.dmp
LOG=d:\backup\exp.log
OWNER=PUBLIC,USER
RECORDLENGTH=10000000
Die Fett markierten Werte müssen eingegeben werden.

Gibt es nicht eine Möglichkeit die Code Zeilen direkt aus Pyton auszufüren? Muss man immer eine Datei Bilden und diese dann mit Python starten?
Michael

Ich glaube ich Löse das ganze so, dass ich die Script dateien generiere und dann direkt ausführe. Mit den 2 einzelnen Scripten ist das sonst recht kompliziert.

Michael
Antworten