Powershell 从windows命令提示符在文件中搜索和替换
我有两个文件 properties.txtPowershell 从windows命令提示符在文件中搜索和替换,powershell,templates,batch-file,Powershell,Templates,Batch File,我有两个文件 properties.txt key1=value1 key2=value2 以及使用此文件的template.txt $key1 xcvsdf sfd $key1 sdf $key2 lorem $key2 ipsum 我想用template.txt替换properties.txt中的所有属性,并将其写入文件。 我不希望它在python\java运行时上运行,因为它应该在任何没有预先要求的机器上运行 我如何使用powershell做到这一点?批处理文件?假设这需要能够在P
key1=value1
key2=value2
以及使用此文件的template.txt
$key1 xcvsdf sfd $key1 sdf
$key2 lorem $key2 ipsum
我想用template.txt替换properties.txt中的所有属性,并将其写入文件。
我不希望它在python\java运行时上运行,因为它应该在任何没有预先要求的机器上运行
我如何使用powershell做到这一点?批处理文件?假设这需要能够在PowerShell 2.0上运行,我会这样做:
# Read template from file
$template = Get-Content .\template.txt
# Copy template to result variable
$result = $template
# Loop through list of properties
Get-Content C:\dev\properties.txt |ForEach-Object{
# Split each line into key-value pairs
$key,$value = $_ -split '=',2
# Replace the placeholder with the appropriate value
$result = $result -replace ('\${0}' -f $key),$value
}
# Output final result
$result |Out-File .\result.txt
假设这需要能够在PowerShell 2.0上运行,我会这样做:
# Read template from file
$template = Get-Content .\template.txt
# Copy template to result variable
$result = $template
# Loop through list of properties
Get-Content C:\dev\properties.txt |ForEach-Object{
# Split each line into key-value pairs
$key,$value = $_ -split '=',2
# Replace the placeholder with the appropriate value
$result = $result -replace ('\${0}' -f $key),$value
}
# Output final result
$result |Out-File .\result.txt
output.txt:
value1 xcvsdf sfd value1 sdf
value2 lorem value2 ipsum
此代码删除template.txt文件中可能出现的感叹号。如果需要,此点可能是固定的
output.txt:
value1 xcvsdf sfd value1 sdf
value2 lorem value2 ipsum
此代码删除template.txt文件中可能出现的感叹号。这一点可能是固定的,如果需要的话。在提问时,最好在你已经尝试过的事情上表现出一些努力。您有一个代码编写请求(不鼓励这样做),但您甚至还没有确定语言。我不同意您的看法:我想在Windows上不使用运行时环境进行搜索和替换。下面的两个答案mathias和@Aacini正是我想要的。当问问题时,你最好在你尝试过的事情上表现出一些努力。您有一个代码编写请求(不鼓励这样做),但您甚至还没有确定语言。我不同意您的看法:我想在Windows上不使用运行时环境进行搜索和替换。下面的两个答案mathias和@Aacini正是我想要的。