2016-08-29 3 views
0

J'ai écrit un exemple de programme qui va écrire Hello World et créé le fichier NSIS et exécuté qui fonctionne très bien pour moimodule PowerShell d'importation NSIS avec des paramètres

Mon script .nsi se présente comme suit

!include "x64.nsh" 

Name "nsExec Test" 
OutFile "nsExecTest.exe" 
#ShowInstDetails show 

Section "Output to variable" 
nsExec::ExecToStack 'powershell.exe "& "Import-Module C:\PowerShell\Hello.psm1"' 
Pop $0 
Pop $1 
DetailPrint '"ImportModules" printed: $1' 
SectionEnd 

Quelle est l'impression l'hôte d'écriture tel qu'écrit quand je l'ai exécuté

Mon code dans .psm1 fichier

# Filename: Hello.psm1 
Write-Host 
Write-Host 'Hello World!' 
Write-Host "Good-bye World! `n" 
# end of script 

Maintenant, je suis en train de réaliser la même chose avec les paramètres, quelqu'un peut me aider

# Filename: TestParameter.psm1 
function TestParam([string] $TestParam) 
{ 
    Write-Host 
    Write-Host '$TestParam' 
    Write-Host "Good-bye $TestParam! `n" 
} 
# end of script 

Répondre

0

au lieu d'un module, que diriez-vous à l'aide d'un script simple?

En C:\PowerShell\script1.ps1:

param([string]$TestParam) 

Write-Host 
Write-Host '$TestParam' 
Write-Host "Good-bye $TestParam! `n" 

Et puis dans le nsi:

nsExec::ExecToStack 'powershell.exe "& "C:\PowerShell\script.ps1 -TestParam myString"' 
+0

Mais le mien est le fichier du module, alors comment puis-je faire – Dotnet

+0

N'a pas travaillé quand je fais comme script execute, '" ImportModules "est imprimé: Import-Module: Impossible de trouver un paramètre correspondant au nom du paramètre 'TestParam'. À la ligne: 1 char: 58 + ... Module rt: PowerShell \ TestParameter.ps1 -TestParam Bonjour-W ... + ~~~~~~~~~~ + CategoryInfo: InvalidArgument: (:) [import-Module], ParameterB indingException + FullyQualifiedErrorId: NamedParameterNotFound, Microsoft.PowerShell.Comm ands.ImportModuleCommand Terminé ' – Dotnet

+0

@Dotnet ne pas utiliser l'applet de commande' import-module', je délibérément enlevé de l'exemple dans ma réponse –