Short:我正在尝试复制文件夹中基于某个字符串的所有文件中的行,然后仅替换复制行中的原始字符串。
原始文本文件的内容(文件中有双引号):
"K:\FILE1.ini"
"K:\FILE1.cfg"
"K:\FILE100.cfg"
我只想在一行中出现字符串“.ini”的情况下将整行复制4次。
复制行后,我想将复制行(原始行保持不变)中的字符串更改为:例如,“.inf”、“.bat”、“.cmd”、“.mov”。
因此,脚本的预期结果如下:
"K:\FILE1.ini"
"K:\FILE1.inf"
"K:\FILE1.bat"
"K:\FILE1.cmd"
"K:\FILE1.mov"
"K:\FILE1.cfg"
"K:\FILE100.cfg"
这些文件很小,所以不需要使用STREAMS。
我的PowerShell之旅才刚刚开始,但多亏了这个社区,我已经知道如何递归地替换文件中的字符串:
$directory = "K:\PS"
Get-ChildItem $directory -file -recurse -include *.txt |
ForEach-Object {
(Get-Content $_.FullName) -replace ".ini",".inf" |
Set-Content $_.FullName
}
但我不知道如何多次复制某些行,以及如何处理这些复制行中的多个字符串替换。
尚未;)
能给我指个正确的方向吗?
1条答案
按热度按时间scyqe7ek1#
要使用运算符
-replace
实现此目的,您可以执行以下操作:这将为您提供以下输出: