powershell:如何计算字符串

powershell:如何计算字符串,powershell,eval,Powershell,Eval,文件a.txt是: 从测试中删除$suffix $a=获取内容a.txt $suffix=“表A” 如何操作变量以将其设置为 从测试表中删除a这里有一种方法。此处双引号字符串中的变量将自动替换。只需确保您的输入文件符合PS规则 function convertto-herestring { begin {$temp_h_string = '@"' + "`n"} process {$temp_h_string += $_ + "`n"} end { $temp_h_st

文件a.txt是:

从测试中删除$suffix

$a=获取内容a.txt

$suffix=“表A”

如何操作变量以将其设置为


从测试表中删除a

这里有一种方法。此处双引号字符串中的变量将自动替换。只需确保您的输入文件符合PS规则

 function convertto-herestring { 
 begin {$temp_h_string = '@"' + "`n"} 
 process {$temp_h_string += $_ + "`n"} 
 end { 
     $temp_h_string += '"@' 
     iex $temp_h_string 
     } 
 } 

 $suffix = "tableA"

 get-content testfile.txt

 delete from test_$suffix

 get-content testfile.txt | convertto-herestring

 delete from test_tableA

调用表达式是等价的

$strExpression=“5+5-等式10”
调用表达式$strExpression
真的

有关更多信息,请参阅。

请注意,如果$a包含带引号的字符串(例如,$a='从“test_$suffix”中删除),则扩展后将丢失引号。这是事实。美元标志也是如此。你只需打勾就可以逃脱它们。此外,here字符串技术仅允许可识别的PowerShell行。我不能在文件中包含“这是文本”(没有引号)。启用该选项在模板类型应用程序时非常有用。我不理解这一部分:“此外,此处字符串技术仅允许可识别的PowerShell行。我不能在文件中包含‘这是文本’(没有引号)。启用该选项在模板类型应用程序时非常有用。”很抱歉,我测试的testfile.txt从ISE保存为Unicode,我将它重新保存为Ascii,它运行正常。没问题。我曾经有过这样的经历:我认为自己比以前更了解事情,而且所做的陈述完全是错误的。我讨厌我这样做,我想确定这不是这样的一次。谢谢你,被接受的答案对我不起作用,它只是回应了可变的内容。你的答案很好,甚至更短
$a=get-content a.txt
$suffix="tableA"

$ExecutionContext.InvokeCommand.ExpandString($a)