Ich versuche, eine einfache Abfrage auf Netzwerk-Computern ausführen, um ihre Windows-Version zu erhalten. Mit diesem Befehl wird und kehrt erwarteten Ergebnisse, wenn sie von der Befehlszeile verwendet:Perl Windows-Befehl schlägt fehl
psexec \\comp_name reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ReleaseId
aber, wenn sie von Perl laufen mit:
system("psexec \\\\$comp_name reg query 'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion' /v ReleaseId")
Ich erhalte den Fehler von REG ERROR: Invalid key name.
Bedenkt man, dass die beiden Befehle sind die Gleichermaßen kann ich nicht herausfinden, warum bei der Ausführung von Perl ein Fehler auftritt. Meine einzige Annahme ist die Art, wie es die Anführungszeichen auflöst. Beachten Sie, dass dieses Problem weiterhin auftritt, unabhängig davon, ob ich system, exec oder ``
verwende. Irgendwelche Vorschläge?
Vielleicht ein String-Interpolationsproblem? – alex
Verwenden Sie immer 'use strict; Verwende Warnungen qw (alle); '!!! Es hätte deinen Fehler identifiziert. – ikegami