2013-06-25 1 views
3

J'essaie de comprendre comment appeler un script PowerShell avec des espaces dans le nom de fichier en tant qu'événement de construction Delphi.Comment utiliser un signe d'esperluette dans un événement de construction?

De CMD je dois appeler powershell.exe -Command "& 'Filename With Spaces.ps1'" qui fonctionne bien. D'autre part, Delphi double le signe de l'esperluette et essaie de transformer la commande en deux commandes.

J'ai essayé de définir ce que l'événement de construction:

powershell.exe -Command "& '$(PROJECTDIR)\Prebuild.ps1' $(PROJECTDIR)" 

Ce qui est exécuté par MSBuild est:

powershell.exe -Command "&& 'D:\SVN\AccuLib 3.0\VCLUI\Prebuild.ps1' D:\SVN\AccuLib 3.0\VCLUI" 

Alors, que faut-il pour appeler un espace fichier contenant ps1 d'un Delphi construire un événement?

Répondre

5

Essayez le paramètre au lieu du fichier, il ne marche pas besoin d'une esperluette:

powershell.exe -File "Filename With Spaces.ps1" 
+0

fonctionne très bien, je peux également passer des arguments supplémentaires au script 'ps1'. –

1

Pour utiliser un signe esperluette, vous pouvez créer un cmd scénario intermédiaire.

événement de construction Delphi:

Prebuild.cmd "$(PROJECTDIR)" 

fichier Prebuild.cmd:

powershell.exe -Command "& 'Filename With Spaces.ps1'" 
Questions connexes