2010-06-28 3 views
1

i ont un simple script Powershell, comme celui-cicomment inclure un ":" en tant que paramètre dans powershell?

sqlcmd -S. -E -Q 'select ''$(x)''' -v x="c:a" 

mais j'ai toujours eu le message d'erreur

Sqlcmd: ':a': Invalid argument. Enter '-?' for help. 

i compris que c'est le ":" dans l'argument a causé le problème, mais je Je ne sais pas comment y échapper.

merci, David

Répondre

3

désolé que je dois répondre à ma propre question à nouveau. La seule façon de résoudre ce problème est d'utiliser '+' pour concaténer les deux chaînes, et le ':' sera réservé.

par exemple. $ a = "abc" + ": 123"

-1

Le caractère backquote est le code d'échappement dans PowerShell. Donc, écrivez ``: `....

oups ... Cela ne fonctionnera pas pour le caractère deux-points. Utilisez %3A à la place.

+0

je viens essayé. il ne semble pas fonctionner pour moi :( – davidshen84

+0

et il affichera '% 3a' exactement pour moi? Non, je veux l'affichage du script sq 'c: un' pour moi. – davidshen84

+0

j'ai découvert qu'il ne s'agit pas d'un problème sqlcmd, c'est la powershell qui a fait quelque chose avec le ":" et ne l'a pas passé à sqlcmd, j'ai exécuté le script dans cmd.exe, et ça marche bien. – davidshen84

0

Vous pouvez aussi essayer cette approche que nous avons utilisée pour le script xdt: Transforms.

$xmlSection.SetAttribute("xdtTransform","Insert")

suivie

foreach-object {$_ -replace "xdtTransform" , "xdt:Transform"}

Questions connexes