2017-05-11 4 views
0

Powershell Version 3 I Funktion in der Datei ONE.ps1 schreiben:Powershell-Skript läuft einmal

Function ONE { 
Write-Output "test1"; 
} 

Dann erstelle ich Datei RUN.ps1 im selben Verzeichnis mit Inhalt:

import-module D:\ps\ONE.ps1 
ONE 

Nach ich betreibe PS-Konsole, könnte ich diesen Code nur 1 Mal ausführen:

.\!RUN.ps1

Ausgang: test1

Aber wenn ich versuche es zum zweiten Mal zu tun, ich habe einen Fehler:

ONE : The term 'ONE' is not recognized as the name of a cmdlet, function, script file, or operable program.

Nach Konsole Neustart Ich habe wieder eine erfolgreiche Ausführung und dann Fehler.

Also, könnten Sie vorschlagen, was schief läuft?

Zusätzliche Details: kurz nachdem ich diese Skripte erstellt habe, konnte ich es einige Male ausführen, aber in einigen Tagen, wahrscheinlich nach dem Neustart, erscheint dieser Fehler. Also vielleicht fehlen mir einige Import-Anweisungen, die ich gemacht habe, als ich das erste Mal geschrieben habe, aber vergessen habe, das endgültige Skript hinzuzufügen.

Antwort von Martin Brandl das Problem lösen:

import-module D:\ps\ONE.ps1 -force

Aber wenn jemand eine andere Art und Weise kennen - es wäre interessant, sie heraus zu überprüfen. Weil das Modul bereits registriert sein sollte. Und Get-Module-Befehl kann dieses Modul sehen, aber aus irgendeinem Grund kann ich es nicht verwenden, das irgendwie nicht richtig.

+0

können Sie versuchen, den Parameter '-force' im Cmdlet 'Import-Module' zu ​​verwenden. –

+0

danke, das hilft. – Niobis27

+0

Gern geschehen. Ich habe meinen Kommentar als Antwort hinzugefügt. –

Antwort

0

Verwenden Sie den Parameter -force auf der Import-Module.