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
.bat & .sh Code ausführen
-
- 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.
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
Ich habe da ein Script mit 3 Variablen in einer .bat bzw. .sh Datei. Die wären LogPfad, ExportPfad und Oracle Pfad.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.
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.
-
- 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):
Und dann im Python-Programm:
Ich hoffe du hast das Prinzip verstanden. Dem Script werden die Variablen über die Kommandozeile übergeben.
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
Code: Alles auswählen
import os
pfad = '/usr/local/share/'
os.system("./script.sh %s %s %s" % (pfad, pfad, pfad))
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Sollte egal sein, du schreibst ja am AnfangLeonidas hat geschrieben: Das Script sieht in etwa so aus (nur mit ZSH getestet):
Code: Alles auswählen
#!/bin/bash
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 ,-))
Also so sehen die Scripte aus:
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?
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]
Die Fett markierten Werte müssen eingegeben werden.USERID=User/PW
BUFFER=10000000
FILE=d:\backup\exp.dmp
LOG=d:\backup\exp.log
OWNER=PUBLIC,USER
RECORDLENGTH=10000000
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?
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
Michael