我试图创建一个GUI,将文本框中的信息打印成.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的新手以及一般的编码,现在我真的被卡住了,我尝试了很多不同的方法。
非常感谢任何想法和帮助。
编辑:我的结果是
=
答案 0 :(得分:0)
在Powershell双引号字符串文字中,每次出现未转义的$
时,都会发生字符串插值,并在其后面显示有效的标识符字符。要引入不应作为插值变量的一部分进行解析的文字$
,您应该使用反引号 `
对其进行转义。
以下是some quick string interpolation help:
如何在字符串中展开表达式?
Windows PowerShell将在字符串中展开变量或表达式。
变量看起来像:$variable
表达式如下:$(expression)
因此,您的"$usbname = $Value_UsbName"
被引擎解释为$usbname
变量的值跟随空格的=
,然后一个值$Value_UsbName
变量。
您想要添加的是文字$usbname
子字符串和$TextBox_UsbName.text
表达式的值。
所以,要么使用
"`$usbname = $($TextBox_UsbName.text)"
或者只是连接值(以独立于文化的方式):
$usbname + ' = ' + $TextBox_UsbName.text