Schrift
[thread]8390[/thread]

Variablenübergabe an Programm

Leser: 1


<< >> 5 Einträge, 1 Seite
tomi-w
 2006-10-05 19:33
#70507 #70507
User since
2006-05-12
11 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,

ich habe das Tool mplex am Laufen (dieses Tool konvertiert Video- und Audiodateien zu einer MPEG-Datei um) und musste bisher immer den Befehl manuell auf der Konsole eingeben. Nun wollte ich mir das Leben mit einem Perl-Skript leichter machen und die Variablen nacheinander abfragen und der Befehlskette:
Code: (dl )
mplex -f 8 -o ziel.mpg quelle.m2v quelle.ac3 quelle.mp2

übergeben. Leider weiß ich nicht genau, wie ich die erfassten Variablen an den String übergeben kann. Hier mein Skript:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/usr/bin/perl -w

$menue = <<HERE_MENUE;

mplex-Konvertierung v0.1 05.10.2006

mplex-Konvertierung starten <1>
beenden <2>

HERE_MENUE

$ziel = 0;
$z_video = 0;
$z_mp2 = 0;
$z_ac3 = 0;

do
{
print $menue;
chomp ($eingabe = <STDIN>);

WECHSEL:

{
$eingabe == 1 && do {print "\n\n**** Willkommen beim mplex-Perl-Skript ****\n";
print "\nDieses Skript fragt nacheinander die einzelnen\n";
print "mplex-Befehle ab. Bitte diese eingeben und mit ENTER\n";
print "jeweils abschliessen!\n";

print "Bitte geben Sie den Zielnamen ein:\n";
chomp ($ziel = <STDIN>);
print "Bitte geben Sie den Quellnamen inkl. Pfad der Videodatei (m2v) an:\n";
chomp ($z_video = <STDIN>);
print "Bitte geben Sie den Quellnamen inkl. Pfad der Audiodatei (mp2) an:\n";
chomp ($z_mp2 = <STDIN>);
print "Bitte geben Sie den Quellnamen inkl. Pfad der Audiodatei (ac2) an:\n";
chomp ($z_ac3 = <STDIN>);
print "*** Ihre Eingaben sind abgeschlossen ***\n";
print "Zur Kontrolle hier nocheinmal Ihre Angaben:\n";
print "Sie wollen die Datei $ziel aus folgenden Dateien erzeugen:\n";
print "Videodatei: $z_video\n";
print "MP2-Audio: $z_mp2\n";
print "AC3-Audio: $z_ac3\n";
print "mplex -f 8 -o $ziel $z_m2v $z_ac3 $z_mp2\n";
last WECHSEL;};

$eingabe == 2 && do {print "Skript beenden.\n";
last WECHSEL;};
}
} while ($eingabe != 2);

Hat jemand eine Idee? Ich denke, dass das nichts außergwöhnliches ist, aber ich habe weit und breit keine Infos gefunden :( Wenn ich das Skript erfolgreich zum Laufen bekommen habe, würde ich es gern per TK als GUI umschreiben. Leider gibt es eine solche GUI nur für Windows in VB6. Aber als Perl könnte es jeder nutzen :)


Danke und Gruß
Thomas
topeg
 2006-10-05 19:48
#70508 #70508
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Code: (dl )
exec("mplex -f 8 -o $ziel $z_video $z_ac3 $z_mp2")

Code: (dl )
`mplex -f 8 -o $ziel $z_video $z_ac3 $z_mp2`

Code: (dl )
system("mplex -f 8 -o $ziel $z_video $z_ac3 $z_mp2")


Such dir was aus:-)
tomi-w
 2006-10-05 19:57
#70509 #70509
User since
2006-05-12
11 Artikel
BenutzerIn
[Homepage] [default_avatar]
SUPER!!! Hat funktioniert :)

Danke nochmal. Werde das fertige Skript auf meine HP stellen.

Gruß
Thomas

P.S. Achja: Meine Seite
Linuxer
 2006-10-05 22:26
#70510 #70510
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Hi,

du solltest Dir aber im klaren sein, was die 3 verschiedenen Aufrufe bedeuten; denn jeder reagiert etwas anders!

perldoc -f exec
perldoc -f system
perldoc perlop - `STRING`

Entsprechend ihrer jeweiligen Funktionsweise und Deinem gewünschten Verhalten solltest Du den korrekten Befehl wählen und einsetzen.
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
renee
 2006-10-07 20:32
#70511 #70511
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Und generell sollte Wiki:use strict verwendet werden...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 5 Einträge, 1 Seite



View all threads created 2006-10-05 19:33.