Ich brauche ein Perl-Skript, um sich mit einem beliebigen Namen, d. H., So dass der Rest von OS wird es als z. "aaa.exe". Ich hatte Eindruck, dass dies möglich ist, in Perl zu tun, aber jetzt bin ich nicht sicher.Spawn Perl-Skript als ein Prozess mit bestimmten Namen
Ich bin mit Strawberry Perl 5.14, 32-Bit-Build, auf Windows 7 amd64.
Hier ist, was ich versucht, und nicht funktioniert:
#!perl -w
# spawnself.pl
if ($ARGV[0]) {
my $name = ($ARGV[0]);
system {"perl"} $name, $0;
} else {
print "running as $^X, PID is $$\n";
print "press Enter to quit...\n";
my $trash = <>;
}
ich dies aus exec perldoc page (es Systemseite Links) basierend auf dem Beispiel zusammen: exec {'/bin/csh'} '-sh';
, wo IIUC, ist das Ziel/bin zu machen/csh denke, es ist „-sh“ ist, obwohl ich nicht sicher bin, ob das auch soll csh aussehen wie „-sh“ von außen machen. Außerdem ist es UNIX Beispiel, während ich auf Windows bin.
Ich hätte gerne ein Skript, das ausgeführt wird (von der Befehlszeile) als spawnself.pl aaa.exe
würde selbst spawnen, Drucken running as aaa.exe, PID is 1234
, und die Suche in Task-Manager würde dieses Programm als "aaa.exe" zeigen. Allerdings sieht immer noch mein Schnipsel sowie der Rest der Welt sich selbst als „perl.exe“:
- im Task-Manager, Prozess 1234 wird nach wie vor „perl.exe“ genannt, so ist es
running as C:\path\to\my\perl.exe, PID is 1234
druckt
Was mache ich falsch? Kann jemand bitte etwas Licht darauf werfen?
Nach einigen Recherchen habe ich das Problem mit 'laufen als spawnper.pl' gefunden - ich '0' $ haben falsch verstanden, ich bearbeite ich die Q dieses heraus zu filtern –