2011-07-20 3 views
1

У меня есть сценарий Powershell, и независимо от того, что я пытаюсь, он полностью игнорирует любые кавычки в скрипте. Ошибка возникает, когда я запускаю скрипт из моего кода VB.NET, я уже давно запускаю скрипты через VB.NET.Почему Powershell игнорирует мои кавычки?

Например, мой сценарий начинается с выяснения имени сервера ...

Это работает:

$name = gc env:computername 

Это не:

$name = "SERVERNAME" 

ошибка дали что-то вместе строки $ name = SERVERNAME не распознаются как командлет ... и так далее.

Это приводит к сбою нескольких строк в моем сценарии, и сообщение об ошибке всегда отображает команду БЕЗ кавычек.

+1

Я думаю, что разглашение метода, с помощью которого вы запускаете скрипт из вашего кода VB.NET, проливает много света на актуальную проблему. –

+0

Что Джоэл сказал, я держу пари, что что-то не так на стороне VB. – JasonMArcher

ответ

2

При присвоении строковых значений вы должны указать их (одиночные или двойные кавычки).

$ имя = 'SERVERNAME'

или

$ имя = "SERVERNAME"

или назначить его непосредственно к переменной (не требует кавычек):

$ имя = $ env: COMPUTERNAME

+0

По какой-то причине он работает с одиночными, но не с удвоением. Это очень странно, но все работает так. Если у меня есть время, чтобы исследовать еще несколько, я отправлю его здесь. Всем спасибо! – Someguy2

+0

Конечно, просто отправьте сценарий, который показывает проблему. –

0

Я не знаком с его использованием из vbs, но симптомы указывают на то, что синтаксический анализатор отбрасывает кавычки. Если дважды qoute строки:

$ Name = «» SERVERNAME «»

Он должен отбросить внешний набор, и оставить вас с внутренним набором.

+0

К сожалению, он просто отбрасывает оба ... – Someguy2

Смежные вопросы