Добавить контент в TXT - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь создать графический интерфейс, который будет печатать информацию из текстового поля в .txt способом, который я постараюсь объяснить, насколько смогу.

$TextBox_UsbName.text = "TestingTesting"

$Button_SetUsbName.Add_Click({ $Value_UsbName = $TextBox_UsbName.text; add-content -path $Value_NewScriptPath -value "$usbname  = $Value_UsbName" })

После запуска я надеялся, что текстовый файл будет содержать:

$usbname = "TestingTesting"

Я все еще новичок в Powershell, а также в кодировании в целом, и теперь я действительно застрялЯ перепробовал много разных способов.

Буду очень признателен за любые идеи и помощь.

Редактировать: Мой результат

= 

1 Ответ

0 голосов
/ 19 июня 2018

В строковых литералах Powershell с двойными кавычками интерполяция строк происходит каждый раз, когда появляется неэкранированный символ $ с допустимым идентификатором после него.Чтобы ввести литерал $, который не следует анализировать как часть интерполированной переменной, вы должны экранировать его с помощью обратного кавычка, `.

Здесь немного быстроСправка по интерполяции строк :

Как развернуть выражение в строке?Windows PowerShell развернет переменную или выражение в строке.Переменные выглядят так: $variableВыражения выглядят так: $(expression)

Итак, ваш "$usbname = $Value_UsbName" интерпретируется двигателем как значение $usbname переменная , за которой следует =, заключенный в пробелы, а затем значение$Value_UsbName переменная .

То, что вы хотите добавить, это буквальная подстрока $usbname и значение выражения $TextBox_UsbName.text.

Итак, используйте либо

"`$usbname = $($TextBox_UsbName.text)"

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

$usbname + ' = ' + $TextBox_UsbName.text
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...