我创建了一个名为ups_tracking_nbr
的PowerShell文件,其中包含所有其他PowerShell脚本使用的变量。按照下面的示例,它包含带注释的部分(供用户理解)和实际变量,它们在运行时会更新。
rn
我正在另一个脚本文件中调用该config ps文件。像下面一样
Config.ps1
执行一些任务:1.2.3然后根据这些任务更新变量
<#$Global:DeploymentType = 'Full/Partial'#>
$Global:DeploymentType = ''
问题是,配置文件中的注释部分和变量都正在更新。我只想更新变量值,而不要评论部分。有什么办法做到这一点?
答案 0 :(得分:2)
改为使用以下代码:
$Config = $Config -creplace "DeploymentType = '[^']*'$","DeploymentType = 'Full'"
它只会替换在最后一个引号后有行尾的文本。
这实际上取决于您的配置如何制作正则表达式。可能应该指定一些其他限制
答案 1 :(得分:0)
当您将脚本作为内容时,您不知道哪个是注释的一部分,哪些不是注释的一部分。因此,您必须将方法-creplace
的第一个参数替换为更特定的正则表达式。例如:
$Config = $Config -creplace "DeploymentType = \'(Full|Partial){0,1}\'","DeploymentType = 'Full'"
这意味着它将替换以下文本:
该注释将不会被替换,因为该值为
DeploymentType='Full/Partial'
答案 2 :(得分:0)
u可以编写正则表达式并像上面比较行 \ $ Global:。 = \ s ('')