我正在学习powershell,并尝试编写一个脚本,通过字符串查找目录中的文件,然后对找到的文件进行查找和替换。我想将文件列表存储为一个变量,然后循环遍历文件并替换特定的字符串。这是我的脚本和错误,如果你有任何想法,它将非常感谢。谢谢!
$GetFiles = Select-String -path "C:\temp\*.xml" -pattern "<cmn:BusinessName>ABC INC</cmn:BusinessName>"|Select-Object filename
foreach ($file in $GetFiles)
{
(Get-Content $Files.PSPath) |Foreach-Object {
$_ -replace "<cmn:FileNumber>0001234</cmn:FileReceiverNumber>", "<cmn:FileReceiverNumber>12345678</cmn:FileReceiverNumber>" `
-replace "<cmn:DropIndicator>DROP</cmn:Indicator>", "<cmn:DropIndicator>DONTDROP</cmn:DropIndicator>"
} |Set-Content $Files.PSPath
}
错误
Get-Content:无法将参数绑定到参数“path”,因为它为null。在C:\scripts\script.ps1:5 char:18+(Get-Content$files.pspath)Foreach-Object{+~~~~~~~~~~~~~~~+CategoryInfo:invaliddata:(:)[Get-Content],ParameterBindingValidationException+FullyQualifiedErrorId:ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.GetContentCommand
$GetFiles = Select-String -Path "C:\temp\*.xml" -Pattern "<cmn:BusinessName>ABC INC</cmn:BusinessName>"
foreach ($File in $GetFiles)
{
$NewContent = Get-Content $File.Path | Foreach-Object {
$_ -replace "<cmn:FileNumber>0001234</cmn:FileReceiverNumber>", "<cmn:FileReceiverNumber>12345678</cmn:FileReceiverNumber>" `
-replace "<cmn:DropIndicator>DROP</cmn:Indicator>", "<cmn:DropIndicator>DONTDROP</cmn:DropIndicator>"
}
$NewContent | Set-Content $File.Path
}
在foreach中,您定义了名为$FILE的变量,但在foreach语句中,您是$FILES而不是$FILE
在第1行中,通过最后使用select-object filename
,$GetFiles的对象只有一个属性filename。因此PSPath属性不存在。这就是为什么会出现null错误的原因。顺便说一句,Select-String命令的输出没有PSPath属性。
我正试图把一个程序放在一起,将搜索整个文本文件的内容。该程序将根据字典搜索文本文件,并用字典值替换找到的任何键。我遇到了一个错误,我不知道如何继续。 示例:dictionary={key1:value1,key2:value2,key3:value3等...} 随机文本示例:在事实所有Key1之前,告诉这个任何他的。Key1坚持限制婚礼,Key2返回Key3辩论呈现。 以上事实所有的价值1告诉这个
当我检查doc_text字符串时,我可以看到“{Today}”,但“{ConsultantName}”被拆分为多个运行。开始大括号和结束大括号不与单词放在一起--它们之间有XML标记: 代码
问题内容: 我想递归搜索带有文本文件子目录的目录,并用多行字符串的内容替换文件中每次出现的{$ replace}。如何用python实现? [编辑] 到目前为止,我所拥有的只是使用os.walk的递归代码,以获取需要更改的文件列表。 问题答案: 签出os.walk: 上面的解决方案有缺陷,例如实际上会打开它找到的每个文件,或者实际上将每个文件都读到内存中(如果您有1GB的文本文件,那就不好了),但
如何使用PDFBox2.0找到和替换PDF文档中的文本,他们拉出了旧的示例,它的语法不再有效,所以我想知道这是否仍然可能,如果是,最好的方法是什么。谢了!
这只是代码的一个片段,但我如何将其合并以查找以任何顺序包含这两个关键字(keyword1、keyword2)的元素呢?这听起来很容易原则上,它可能是,但我有一个地狱的时间试图得到这个。任何建议都将不胜感激,谢谢。
问题内容: 我正在使用以下内容以递归方式在目录中搜索特定的字符串,并将其替换为另一个: 这样可以。唯一的问题是,如果字符串不存在,则失败,因为它没有任何参数。这对我来说是个问题,因为我是使用ANT自动运行的,而构建由于失败而失败。 如果找不到该字符串,有没有办法使它失效? 我对我可以使用的单行简单解决方案感兴趣(不一定与或与此类通用unix命令一起使用)。 问题答案: 您可以使用和直接进入,而不是